shell脚本学习笔记

2019-05-20  本文已影响0人  愤愤的有痣青年

shell 脚本是一种可以在linux系统下运行的解释性脚本,应用广泛,功能强大,以下是本人在学习shell脚本过程中的学习笔记.

shell 脚本一般第一行为#!/bin/bash#!/bin/sh,这是用来指定运行的解释器程序的路径

第一个脚本

#!/bin/bash
echo "hello shell"

脚本语法

变量

myUrl="http://www.google.com"
readonly myUrl

Shell 字符串

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.

your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2  $greeting_3

输出:

hello, runoob ! hello, runoob !
hello, runoob ! hello, ${your_name} !

获取字符串长度

string="abcd"
echo ${#string} #输出 4

提取子字符串

string="runoob is a great site"
echo ${string:1:4} # 输出 unoo

查找子字符串

string="runoob is a great site"
echo `expr index "$string" io`  # 输出 4

shell 数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。数组元素下标从0开始

array_name=(value0 value1 value2 value3)
或:
array_name=(
value0
value1
value2
value3
)
或(可以不使用连续的下标,而且下标的范围没有限制。):
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

读取数组

获取数组的长度

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

Shell 接收传递的参数

# 脚本内部代码
echo "name is $0"

# 带参数运行脚本
./test.sh panso

# 输出
name is panso
参数处理 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。如"*"用「"」括起来的情况、以"1 2 …n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ *相同,但是使用时加引号,并在引号中返回每个参数。如"@"用「"」括起来的情况、以"1" "2" … "$n" 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
上一篇下一篇

猜你喜欢

热点阅读