#!/bin/bash echo $0 # 当前脚本的文件名(间接运行时还包括绝对路径)。 echo $n # 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1 。 echo $# # 传递给脚本或函数的参数个数。 echo $* # 传递给脚本或函数的所有参数。 echo $@ # 传递给脚本或函数的所有参数。被双引号 (" ") 包含时,与 $* 不同,下面将会讲到。 echo $? # 上个命令的退出状态,或函数的返回值。 echo $$ # 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。 echo $_ # 上一个命令的最后一个参数 echo $! # 后台运行的最后一个进程的 ID 号
执行
$ ./test.sh test test1 test2 test3 test4 ./test.sh # $0 # $n 5 # $# test test1 test2 test3 test4 # $* test test1 test2 test3 test4 # $@ 0 # $? 12305 # $$ 12305 # $_ # $!
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号 (“”) 包含时,都以”$1″“ 2 ” … ” 2″ … ” 2“…“n” 的形式输出所有参数。
但是当它们被双引号 (“”) 包含时,”$*“会将所有的参数作为一个整体,以”$1 $2 … n ” 的 形 式 输 出 所 有 参 数 ; ” n”的形式输出所有参数;” n“的形式输出所有参数;“@“会将各个参数分开,以”$1″“ 2 ” … ” 2″ … ” 2“…“n” 的形式输出所有参数。
示例2:新建一个test.sh的文件
#!/bin/bash echo "脚本$0" echo "第一个参数$1" echo "第二个参数$2"
执行结果如下:
$ ./test.sh 1 2 #shell中将会输出: 脚本./test.sh 第一个参数1 第二个参数2
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221679.html原文链接:https://javaforall.net
