Linux脚本中 指令返回值得获取,以及参数等获取
在写脚本时,经常遇到这样的问题:
如何获取当前进程号,脚本执行过的命令的进程号?
如何获取当前时间?
如何得到参数个数?
如何得到脚本中各命令的返回信息?。。。。
其实这些信息都能轻松从shell预定义的一些特殊变量获得,下面总结了一些常用的。
特殊的shell变量: #获取当前执行的shell脚本的文件名 $0 #获取当前执行的shell脚本的第n个参数值,n=1..9 $n #获取当前shell的所有参数$1 $2 $3 … $* # 注意与$#的区别 #获取当前shell命令行中参数的 总个数 $# #获取当前shell的进程号(PID) $$ #执行上一个指令的PID $! #获取执行的上一个指令的返回值(也就是main()的返回值,通常0 为成功, 非0零为失败) $? #这个程序的所有参数 “$1″ “$2″ “$3″ “…” $@
案例1:
vim shell.sh
写入脚本内容:
echo $0 echo $1 echo $n echo $# echo $* echo $? echo $@ echo $! echo $$
执行脚本:sh shell.sh add test
案例2:
1.获取shell函数调用的返回值: #!/bin/sh info() { cat jlb.sh } res=`info` echo "state: "$? echo "res: "${res}
说明:res=`info`这一行为调用函数info,里面的符号`不是单引號,而是Esc按键以下的那个。另外$?返回的为上一条命令的运行状态,不是返回值。
2、获取shell命令的返回值,原理同上,比如: #!/bin/sh info=`cat jlb.sh` echo "info: "${info}