当我们运行一个脚本的时候,会因为不同的场景我们需要给这个脚本传递不同的参数。比如一个自动打包app 的脚本中会有一个变量参数需要我们去传递debug 或者是realease 环境 ,或者上传app 到哪个平台等等。。。
传递参数的格式
$n
n 是一个数字,1就代表你传递的第一个参数 2就是第二个,依此类推
案例
echo "shell 传递参数demo"
echo "执行的文件路径: $0"
echo "第一个参数: $1"
echo "第二个参数: $2"
echo "第三个参数: $3"
执行脚本文件
KeraindeMac-mini:~ kerain$ sh /Users/kerain/Documents/梁奎元/学习代码/脚本练习/shell传递参数.sh 5 6 7
"5 6 7" 这三个参数放在文件路径后面
打印结果:
shell 传递参数demo
执行的文件路径: /Users/kerain/Documents/梁奎元/学习代码/脚本练习/shell传递参数.sh
第一个参数: 5
第二个参数: 6
第三个参数: 7
特殊字符
echo "参数个数为 $#"
echo "向脚本传递的参分别是: $*"
echo "向脚本传递的参分别是: $@"
echo "脚本运行的当前进程ID号: $$"
echo "后台运行的最后一个进程的ID号: $!"
echo "显示Shell使用的当前选项: $-"
echo "显示最后命令的退出状态: $?"
打印结果:
参数个数为 3
向脚本传递的参数是: 5 6 7
向脚本传递的参数分别是: 5 6 7
脚本运行的当前进程ID号: 7027
后台运行的最后一个进程的ID号:
显示Shell使用的当前选项: hB
显示最后命令的退出状态: 0
$* 与 $@ 区别:
同上demo
$@ 引用了一个参数“5 6 7”
$* 引用了三个参数“5” “6” “7”