shell 脚本-参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
使用和传参
params.sh 脚本:
echo "Shell 传递参数实例!";
echo "params1: $1"
echo "params2: $2"
echo "params4: $4"
echo "params3: $3"
运行 params.sh 脚本:
./params.sh 参数1 参数2 参数3 参数4
运行结果:
Shell 传递参数实例!
params1: 参数1
params2: 参数2
params4: 参数4
params3: 参数3
如果参数没传,则为空
处理参数
获取参数个数
使用 $#
可以获取参数的个数
echo "参数个数为:$#"
获取所有参数
使用 $$
或 $@
可以获取参数的个数
echo "所有参数: $$"
echo "所有参数: $@"
$*
和 $@
区别
如果使用 $*
或 $@
时使用引号包裹,效果就不一样了
echo "-- \$* 演示 ---"
for i in "$*"; do
echo $i
done
echo "-- \$@ 演示 ---"
for i in "$@"; do
echo $i
done
运行
./params.sh 参数1 参数2 参数3 参数4
运行结果
– $* 演示 —
参数1
参数2
参数3
参数4
– $@ 演示 —
参数1
参数2
参数3
参数4
获取进程ID
使用 $$
可以获取脚本运行的当前进程ID号
使用 $!
可以获取脚本运行的后台运行的最后一个进程ID号
echo "脚本运行的当前进程ID号: $$"
echo "后台运行的最后一个进程ID号: $!"
获取当前选项
使用 $-
可以获取Shell使用的当前选项,与set命令功能相同。
echo "显示Shell使用的当前选项: $-"
获取当前选项
使用 $?
可以获取最后命令的退出状态, 0表示没有错误,其他任何值表明有错误。
echo "显示最后命令的退出状态: $?"