加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash如何检测传递给脚本的缺少的必需参数

发布时间:2020-12-15 21:43:23 所属栏目:安全 来源:网络整理
导读:我有一个 Bash脚本,我需要传递一定数量的参数才能使它工作. ./upload.sh $ARG1 $ARG2 $ARG3 假设2个必填字段是ARG1和ARG2,并且 ARG1和3不为空. 我认为脚本会运行并认为它有2个强制参数, 有没有办法检测到ARG2缺失/空? 我需要返回退出1而不是退出0. 这是一些
我有一个 Bash脚本,我需要传递一定数量的参数才能使它工作.
./upload.sh $ARG1 $ARG2 $ARG3
假设2个必填字段是ARG1和ARG2,并且
ARG1和3不为空.

我认为脚本会运行并认为它有2个强制参数,
有没有办法检测到ARG2缺失/空?
我需要返回退出1而不是退出0.

这是一些脚本

RESOURCE=$1
CONTAINER=$2
APP_NAME=$3

if [[ -z $RESOURCE || -z $CONTAINER ]];
then
    echo `date`" - Missing mandatory arguments: resource and container. "
    echo `date`" - Usage: ./upload.sh  [resource] [container] [appname] . "
    exit 1
fi

提前致谢,

阿兰

解决方法

我总是使用一个小函数来检查所有参数:

process_arguments() {
    while [ -n "$1" ]
    do
        case $1 in
            -h|--help) echo "some usage details"; exit 1;;
            -x) do_something; shift; break;;
            -y) do_something_else; shift; break;;
            *) echo "some usage details"; exit 1;;
        esac
        echo $1; shift
    done
}

这样,如果您遗漏任何内容,将显示正确的使用详细信息,脚本将退出.否则,您可以按任何顺序输入args.脚本启动时,只需调用即可

process_arguments "$@"

你应该全力以赴.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读