您的位置:首页 > 运维架构 > Shell

linux shell 特殊变量----轻松获取系统信息

2013-10-22 17:11 225 查看
原文地址:
hi.baidu.com/zhoujin1012/item/b36979d19464c640fb5768b2

在写脚本时,经常遇到这样的问题:如何获取当前进程号,脚本执行过的命令的进程号?如何获取当前时间?如何得到参数个数?如何得到脚本中各命令的返回信息?。。。。其实这些信息都能轻松从shell预定义的一些特殊变量获得,下面总结了一些常用的。

 特殊的shell变量:

$0  获取当前执行的shell脚本的文件名

$n  获取当前执行的shell脚本的第n个参数值,n=1..9

$*  获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别

$#  获取当前shell命令行中参数的总个数
$$  获取当前shell的进程号(PID)

$!  执行上一个指令的PID

$?  获取执行的上一个指令的返回值(也就是main()的返回值,通常0 为成功, 非0零为失败)

$@  这个程序的所有参数 “$1″ “$2″ “$3″ “…”
例子:

[zj@test]# cat   test.sh

echo ‘$0  获取当前执行的shell脚本的文件名:’ $0

echo ‘$n  获取当前执行的shell脚本的第n个参数值,n=1..9:’ ‘$1′=$1 ‘$2′=$2 “\$3=$3″

echo ‘$*  获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别:’ $*

echo ‘$#  获取当前shell命令行中参数的总个数:’ $#

echo ‘$$  获取当前shell的进程号(PID):’ $$

sleep 2 &

echo ‘$!  执行上一个指令的PID :’ $!

echo ‘$?  获取执行的上一个指令的返回值 :’ $?

echo ‘$@  这个程序的所有参数 “$1″ “$2″ “$3″ “…” :’ $@

脚本执行结果 (大家仔细看):

[zj@test]# sh test.sh 参数1 参数2 参数3

$0  获取当前执行的shell脚本的文件名: test.sh

$n  获取当前执行的shell脚本的第n个参数值,n=1..9: $1=参数1 $2=参数2 $3=参数3

$*  获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别: 参数1 参数2 参数3

$#  获取当前shell命令行中参数的总个数: 3

$$  获取当前shell的进程号(PID): 2162

$!  执行上一个指令的PID : 2163

$?  获取执行的上一个指令的返回值 : 0

$@  这个程序的所有参数 “$1″ “$2″ “$3″ “…” : 参数1 参数2 参数3

[zj@test]# sh test.sh zj aa  bb
$0  获取当前执行的shell脚本的文件名: test.sh

$n  获取当前执行的shell脚本的第n个参数值,n=1..9: $1=zj $2=aa $3=bb
$*  获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别: zj aa bb
$#  获取当前shell命令行中参数的总个数: 3
$$  获取当前shell的进程号(PID): 2120
$!  执行上一个指令的PID : 2121
$?  获取执行的上一个指令的返回值 : 0
$@  这个程序的所有参数 “$1″ “$2″ “$3″ “…” : zj  aa bb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux shell shell 脚本