shell传递参数

当我们运行一个脚本的时候,会因为不同的场景我们需要给这个脚本传递不同的参数。比如一个自动打包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”

你可能感兴趣的:(shell传递参数)