Bash脚本未获取输入变量

时间:2019-10-16 00:07:27

标签: bash

我有一个简单的bash脚本,请参见下文

#!/bin/bash

while getopts "t" opt; do
    case $OPT in
        t) JWT_TOKEN="$OPTARG"
            ;;
        \?) echo "Invalid option -$OPTARG" >&2
            ;;
    esac
done

echo "Token value is $JWT_TOKEN"

一个简单的测试电话是

my-script.sh -t 'test'

但这会创建以下输出

sedavidw@MacbookPro~$ sh my-script.sh -t 'test'
Token value is
sedavidw@MacbookPro~$

更新 能够通过将其更改为

来修复我的脚本
#!/bin/bash

while getopts "t:" opt; do
    case "${opt}" in
        t) JWT_TOKEN="$OPTARG"
            ;;
        \?) echo "Invalid option -$OPTARG" >&2
            ;;
    esac
done

echo "Token value is $JWT_TOKEN"

从注释看来,t:的更改对参数很有帮助。但是对于"${opt}"部分的语法更改仍然不清楚,并且希望在此进行一些澄清

0 个答案:

没有答案