首页 > 解决方案 > 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}"部分的语法更改,并希望有一些清晰

标签: bash

解决方案


推荐阅读