在执行Shell脚本是,可以向脚本传递参数。脚本内获取参数的格式为: $n ,n 是一个数字, 1 表示第一个参数,2 表示第二个参数,以此类推
例子1:
向脚本传递2个参数,并分别输出,其中 $0 表示执行的文件名
#!/bin/bash echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2";
- 执行: sh kimbo_test.sh 20170201 eg
- 结果:
常用参数说明:
$# : 传递脚本的参数个数
$? : 显示上一个命令的状态。0表示成功,其他值表示失败
$* :传递给脚本所有参数, 但当被双引号 ""包含时("$*"),会把所有的参数作为一个整体,以"$1 $2 … $n"的形式输出
$@:传递给脚本所有参数, 但当被双引号 ""包含时,会将各个参数分开,以"$1" "$2" … "$n"的形式输出

#!/bin/bash echo "常规模式$*" for i in $* do echo $i done echo "常规模式$@" for i in $@ do echo $i done echo "<------ 带双引号,分割线 ------>" # "$*" 模式 echo "双引号$*" for i in "$*" do echo $i done # "$@" 模式 echo "双引号$@" for i in "$@" do echo $i done
执行脚本(传个3个参数): sh zss_test.sh p1 p2 p3
结果如下:
例子2: 校验参数个数
#!/bin/bash if [ $# -ne 2 ];then echo "Please Enter two parameter,Try again." echo "example: 20170201 20170210" exit 1 fi ## 打印输出 echo "parameter is ok."