shell 脚本中常见的 , , ,#,$n…命令?分别代表什么意思?
shell里$有很多意思:
1、$可以表示引用作变量或运算替换,最常见的用法
2、$可作为取变量运算符,如echo $PATH 将会输出PATH 变量的内容
3、a=$((1+2))可将a赋值为3,而不是字符串“1+2”,也就是运算功能
4、a=$(ls /home) 可将括号内命令执行结果赋值给a,有先执行命令的意思
5、登录到shell成功后会在光标左侧发现$,它是命令提示符,代表普通帐号登录,#是代表root帐号登录。
6、在正则表达式中,$是行尾的意思,如"a$"代表以a为行尾的行
7、还有如果你用vi的话,一般模式下,$是光标移到行尾的命令
$的组成式:
$0 这个程式的执行名字$n 这个程式的第n个参数值,n=1..9 #超过10要用大括号${10}
$* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$#这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*的用法基本类似,只有在循环中才有差别