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里是用来指明变量。
在Shell 脚本中向脚本传递参数也会用到 $,例如脚本内获取参数的格式为:$n,n 代表一个数字,$1 为执行脚本的第一个参数,$2 为执行脚本的第二个参数,以此类推。

2.2 $()

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

2.3 ${}

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

${0} 代表命令本身
${1} 代表命令后输入的第1个参数
${2} 代表命令后输入的第2个参数

#====== 示例 ================
./main.sh -f xxx
${0} 代表 ./main.sh
${1} 代表 -f
${2} 代表 xxx

3 $组合命令

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

你可能感兴趣的:(Linux,Linux中的,符号命令)