Linux中的$符号命令

1 bash和sh的区别

bash是 Bourne Again SHell 是linux标准的默认shell ,它基于Bourne shell,吸收了C shell和Korn shell的一些特性。bash完全兼容Bourne shell,也就是说用Bourne shell的脚本不加修改可以在bash中执行。
sh是Bourne shell 这个是UNIX标准的默认shell,对它评价是concise简洁 compact紧凑 fast高效 有AT&T编写,属于系统管理shell。

、、、、、、、、、、、、、
sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash,你可以试试tcsh啊,csh啊,ksh,zsh什么的,看看别的shell是什么样子的。当然,linux中sh是链接到bash上的,所以sh与bash在功能上是没有区别的。
还有就是在执行脚本的时候是用sh + 脚本名的方式来执行,其实,大部分的时候,简单脚本只要权限设置正确,可以直接执行,不需要sh命令的。

2 $、$()、${}的区别

2.1$

$ 在linux里是用来指明变量,例如$JAVA_HOME,是指JAVA_HOME的环境变量。
echo JAVAHOMElinuxjdkhomezhiShellJAVA_HOME 可以在linux终端输出jdk的home目录zhi。 在Shell 脚本中向脚本传递参数也会用到,例如脚本内获取参数的格式为:$n,n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推。

2.2 $()

小括号里面是linux命令
比如
cat (pwd)>aaacatpwd>aaapwd(pwd)>aaa 等价于 cat `pwd`>aaa 其实是要执行里面的pwd然后用输出代替()内容。

2.3 ${}

大括号里面则是数组变量
举个例子
$A = (hello linux shell)
$echo ${A[0]}
则会输出hello

3 $组合命令

$$
Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)
$!
Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)
$?
最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$-
显示shell使用的当前选项,与set命令功能相同
"* 所有参数列表。如"*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数,此选项参数可超过9个。
@"@ 所有参数列表。如"@“用「”」括起来的情况、以"$1" “2""2" … "n” 的形式输出所有参数。
@@ 跟*类似,但是可以当作数组用
$#
添加到Shell的参数个数
$0
Shell本身的文件名
11~n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章