码迷,mamicode.com
首页 > 系统相关 > 详细

shell特殊变量

时间:2015-05-20 18:46:28      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:shell特殊变量

接下来看一些特殊变量
$? :接收上一条命令的返回状态码,这样的话可以知道上一条命令是否执行成功,
如果上一条命令执行成功的话,这个返回状态码就是0,如果上一条命令执行失败的话,返回值是1-255之间的某个值,也就是说,成功的返回值只有一个,失败的返回值是各种各样的。

执行ls 命令 再执行echo $?  状态码为0
执行lkkk命令,再执行echo $?  状态码为127





$#:参数个数
一般我们在执行一些脚本的时候,如果后面指定的参数数量不够,那么脚本就会给一个提示,说参数个数不够,那它是怎么判断的呢。就是使用$#来判断的。
例如
写一个test.sh脚本,里面写下面代码
echo $#

这样在调用test.sh脚本的时候如果后面不传递参数,则返回值为0,如果指定几个参数,则返回值就是几。


$*   $@  :获取脚本后面指定的所有参数
这两个命令都可以获取指定脚本后面的所有参数,在这里,先认为这两个命令的执行结果一致,具体有什么不同,下面具体用到的时候会分析。

写一个test.sh脚本
echo  $*
echo  $@
这样在执行test.sh脚本的时候,在后面指定参数,test.sha b c  这样的话就会打印两次 a b c 参数,说明刚才那两个命令的执行结果是一致的。


$$:获取当前shell的进程号,
这个东西有什么用呢,这个可以用来实现shell进程自杀。

在shell脚本中使用kill命令,后面跟上这个命令就可以实现进程自杀。
例如:
echo $$
echo "start"
kill  $$
sleep 900000000
echo "end"

或者使用exit也可以退出shell脚本

例如,把上面的kill $$ 替换成exit [num](num表示退出状态码,可以指定或者不指定,不指定默认是0)

更多精彩内容请关注:http://bbs.superwu.cn 

关注超人学院微信二维码:技术分享

shell特殊变量

标签:shell特殊变量

原文地址:http://crxy2013.blog.51cto.com/9922445/1653236

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!