Linux中Shell的特殊变量

Linux中echo $?表示显示前一个指令是否成功执行,比如:
[[email protected] ~]# junjie
-bash: junjie: command not found
[[email protected] ~]# echo $?
127
[[email protected] ~]# pwd
/root
[[email protected] ~]# echo $?
0
返回结果中,0表示成功,2表示权限拒绝
[[email protected] ~]# su - oracle
[[email protected] ~]$ ll /root
ls: cannot open directory /root: Permission denied
[[email protected] ~]$ echo $?
2
1~125表示运行失败,脚本命令、系统命令错误或参数传递错误;
126表示找到该命令了,但是无法执行;
127表示未找到运行的命令;
\>128表示命令被系统强制结束

$$ 获取当前shell的进程号(PID)
$0 获取当前执行的shell脚本的文件名,包括脚本路径
$n 获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0时表示脚本的文件名,如果n大于9,用大括号括起来${10}
$# 获取当前shell命令行中参数的总个数
$*行所有参数视为单个字符串,等同于“$1$2$3”
[email protected] 将命令行每个参数视为单独的字符串,等同于“$1”“$2”“3”.这是将参数传递给其他程序的最佳方式,因为他会保留所有内嵌在每个参数里的任何空白。
以下为程序测试结果:
[[email protected] ~]# set -- "I am" handsome Leo.
[[email protected] ~]# echo $#
3
[[email protected] ~]# for i in $*;do echo $i;done
I
am
handsome
Leo.
[[email protected] ~]# for i in [email protected];do echo $i;done
I
am
handsome
Leo.
[[email protected] ~]# for i;do echo $i;done
I am
handsome
Leo.
[[email protected] ~]# for i in "$*";do echo $i;done
I am handsome Leo.

以上内容为作者的学习笔记,内容中的程序为亲测结果,若有侵权或不当之处还请各位朋友批评指正,共同进步.

猜你喜欢

转载自blog.51cto.com/12991611/2555871

相关文章