赞
踩
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命令的。
$ 在linux里是用来指明变量。
在Shell 脚本中向脚本传递参数也会用到 $,例如脚本内获取参数的格式为:$n,n 代表一个数字,$1 为执行脚本的第一个参数,$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)>aaa等价于cat‘pwd‘>aaa其实是要执行里面的pwd然后用输出代替()内容。
大括号里面则是数组变量
举个例子
$A = (hello linux shell)
$echo ${A[0]}
则会输出hello
${0} 代表命令本身
${1} 代表命令后输入的第1个参数
${2} 代表命令后输入的第2个参数
#====== 示例 ================
./main.sh -f xxx
${0} 代表 ./main.sh
${1} 代表 -f
${2} 代表 xxx
$$
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~
1~n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。