您的位置:首页 > 运维架构 > Linux

Linux基础入门——shell脚本的数组与变量替换(十一)

2019-03-15 19:26 483 查看

一:shell特殊变量
前面已经讲到,变量名只能包含数字,字母和下划线,因为某些包含其它字符的变量有特殊含义,这样的变量被称为特殊变量。
例如,$表示当前shell进程的ID,即pid,看下面的代码:

运行结果

二:命令行参数
运行脚本时传递给脚本的参数称为命令行参数。命令行参数用$n表示,例如,$1表示第一个参数,$2表示第二个参数,以此类推。
请看下面的脚本:

运行结果:

三:退出状态
$?可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。退出状态是一个数字,一般情况下,大部分命令执行成功会返回0,失败返回1,不过也有一些命令返回其它值,表示不同类型的错误。下面例子中,命令成功执行:

$?也可以表示函数的返回值,后续将会讲解。

四:shell数组
在shell中,用括号来表示数组,数组元素用“空格”符号分割开,定义数组的一般形式为:
array_name=(value1 … valueN)

例如:

还可以单独定义各个数组的分量:

可以不使用连续的下标,而且下标的范围没有限制。

五:读取数组
读取数组元素值的一般格式是:
${array_name{index}}

例如:

举个例子:

运行脚本,输出:

使用@或*可以获取数组中的所有元素,例如:

举个例子:

运行脚本,输出:

六:获取数组的长度
获取数组长度的方法与获取字符串长度的方法相同,例如:

六:shell变量替换
如果表达式中包含特殊字符,shell将会进行替换。例如,在双引号中使用变量就是一种替换,举个例子:

运行结果:

七:命令替换
命令替换是指shell可以先执行命令,将输出结果暂时保存,在适当的地方输出,命令替换的语法:

注意:是反引号,不是单引号,这个键位于Esc下方。
下面的例子中,将命令执行结果保存在变量中:

运行结果:

八:变量替换
变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值
可以使用的变量替换形式:

请看下面的例子:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: