Shell 传递参数

在执行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
View Code

执行脚本(传个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."

 

posted @ 2017-02-03 15:30  Kimbo  阅读(1084)  评论(0编辑  收藏  举报