linux中shell变量含义解释:
变量说明:
$符号的妙用
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"
用双引号括起来的情况、以"$1 $2 … $n"
的形式输出所有参数。
${*:num}
表示从num开始,后面的所有字符串
$@
所有参数列表。如"$@"
用双引号括起来的情况、以"$1" "$2" … "$n"
的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
2. 字符串的提取和替换
${var:num},${var:num1:num2},${var/pattern/pattern},${var//pattern/pattern}
第一种模式:${var:num}
,这种模式时,shell在var中提取第num个字符到末尾的所有字符。若num为正数,从左边0处开始;若num为负数,从右边开始提取字串,但必须使用在冒号后面加空格或一个数字或整个num加上括号,如${var: -2}
、${var:1-3}
或${var:(-2)}
。
第二种模式:${var:num1:num2}
,num1是位置,num2是长度。表示从$var
字符串的第$num1
个位置开始提取长度为$num2的子串。不能为负数。
第三种模式:${var/pattern/pattern}
表示将var字符串的第一个匹配的pattern替换为另一个pattern。
第四种模式:${var//pattern/pattern}
表示将var字符串中的所有能匹配的pattern替换为另一个pattern。
[root@centos ~]# var=/home/centos
[root@centos ~]# echo $var
/home/centos
[root@centos ~]# echo ${var:5}
/centos
[root@centos ~]# echo ${var: -6}
centos
[root@centos ~]# echo ${var:(-6)}
centos
[root@centos ~]# echo ${var:1:4}
home
[root@centos ~]# echo ${var/o/h}
/hhme/centos
[root@centos ~]# echo ${var//o/h}
/hhme/cenths
字符大小写转换
${var^^}:把var中的所有小写字母转换为大写
${var,}:把var中的所有大写字母转换为