shell 传递参数 可以在执行shell脚本时,向脚本传递参数,脚本获取参数格式:$n. n代表数字,1为脚本的第一个参数,2为执行脚本的第二个参数,一次类推。 例:
#文件名test.sh echo "shell 传递实参"; echo "执行文件名 $0"; echo "第一个参数 $1" echo "第二个参数 $2";执行脚本
$ chmod +x test.sh #修改文件为可执行文件 $ ./test.sh 1 2 shell传递实参 执行文件名 ./test.sh 第一个参数1 第二个参数2特殊符号处理参数
参数处理说明$#传递到脚本的个数$*以一个单字符串显示所有向脚本传递的参数$$脚本运行的当前进程ID$!后台运行的最后一个进程ID号$@与$#相似,使用时加双引号,并在引号中返还每个参数$-显示Shell使用的当前选项,与set命令相同$?显示最后的命令退出状态。0表示无错误。例:
#test1.sh echo "Shell 传递参数实例!" echo "第一个参数: $1" echo "参数的个数: $#" echo "传递的参数作为一个字符串显示:$*"执行脚本,输出结果
$ chmod +x test1.sh $ ./test.sh 1 2 Shell 传递参数实例 第一个参数: 1 参数个数: 2 传递的参数作为一个字符串显示; 1 2∗ 与 * 与 ∗与@区别: 只有在双引号中体现出来。假设在脚本运行时写了三个参数1 ,2 ,3. 则“*”等价于“1 2 3”(传递了一个参数),而“@”等价于“1” “2” “3”(传递了三个参数)。
例:
#test2.sh echo "---$*----演示" for i in "$*"; do echo $i done echo "----$@---演示" for i in "$@"; do echo $i done执行结果:
$chmod +x test2.sh $./test2.sh 1 2 3 ---$*---演示 1 2 3 ---$@---演示 1 2 3