[shell]传入参数

发布时间:2024年01月15日

一、需求

在启动shell脚本时,需要传入参数以实现某些特定功能,不传参数时执行默认功能。

二、shell脚本源码

#!/bin/sh
echo "------app run-----"

DEF_PARA1="default_para1"
DEF_PARA2="default_para2"
DEF_PARA3="default_para3"

USR_PARA1=${DEF_PARA1}
USR_PARA2=${DEF_PARA2}
USR_PARA3=${DEF_PARA3}

if [ $1 ] ; then
    USR_PARA1=$1
fi
if [ $2 ] ; then
    USR_PARA2=${2}
fi
if [ $3 ] ; then
    USR_PARA3=$3
fi
echo $0
echo ${USR_PARA1}
echo ${USR_PARA2}
echo ${USR_PARA3}

三、代码解析

3.1声明文件格式为shell

#!/bin/sh

注意必须声明。

3.2默认参数设置

DEF_PARA1="default_para1"
DEF_PARA2="default_para2"
DEF_PARA3="default_para3"

USR_PARA1=${DEF_PARA1}
USR_PARA2=${DEF_PARA2}
USR_PARA3=${DEF_PARA3}

当程序无任何传参时,以此参数进行运行。

3.3获取shell传入参数并校验


if [ $1 ] ; then
    USR_PARA1=$1
fi
if [ $2 ] ; then
    USR_PARA2=${2}
fi
if [ $3 ] ; then
    USR_PARA3=$3
fi

注意,“$1”这种美元后跟数字的变量是获取入参的形式,数字指的是传入参数的索引,$1代表第一个参数,$5代表第五个参数,以此类推。$0代表运行当前脚本的命令。

3.4打印输出


echo $0
echo ${USR_PARA1}
echo ${USR_PARA2}
echo ${USR_PARA3}

四、结果

4.1只传递一个参数

$ ./run.sh 1
------app run-----
./run.sh
1
default_para2
default_para3

4.2传递三个参数

$ ./run.sh 1 2 3
------app run-----
./run.sh
1
2
3

五、总结

通过$number的形式获取传参内容,可视作变量进行操作。当需要以默认参数的形式运行时,需要对各参数进行一次校验处理。

文章来源:https://blog.csdn.net/qq_34217861/article/details/135600948
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。