Linux中echo $?表示显示前一个指令是否成功执行,比如: [root@dbserver ~]# junjie -bash: junjie: command not found [root@dbserver ~]# echo $? 127 [root@dbserver ~]# pwd /root [root@dbserver ~]# echo $? 0返回结果中,0表示成功,2表示权限拒绝 [root@dbserver ~]# su - oracle [oracle@dbserver ~]$ ll /root ls: cannot open directory /root: Permission denied [oracle@dbserver ~]$ 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” $@ 将命令行每个参数视为单独的字符串,等同于“$1”“$2”“3”.这是将参数传递给其他程序的最佳方式,因为他会保留所有内嵌在每个参数里的任何空白。 以下为程序测试结果: [root@dbserver ~]# set -- "I am" handsome Leo. [root@dbserver ~]# echo $# 3 [root@dbserver ~]# for i in $*;do echo $i;done I am handsome Leo. [root@dbserver ~]# for i in $@;do echo $i;done I am handsome Leo. [root@dbserver ~]# for i;do echo $i;done I am handsome Leo. [root@dbserver ~]# for i in "$*";do echo $i;done I am handsome Leo.

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