如果语句发疯(或我?)

时间:2019-01-07 22:50:49

标签: bash

这是我的bash脚本的参数之一。但似乎出了点问题。

Bash脚本:

case "${1}" in
--api )
        if ( "${2}" == "US" ); then
            sparkEndpoint="https://api.sparkpost.com/api/v1/transmissions"
            shift
        elif ( "${2}" == "EU" ); then
            sparkEndpoint="https://api.eu.sparkpost.com/api/v1/transmissions"
            shift
        else
            echo -e ${parameterNotSpecified}
            echo -e ${usageApi}
            break
        fi
        shift
    ;; [...]

控制台输出:

./fn_sendmail.sh --api EU
./fn_sendmail.sh: Zeile 95: EU: Kommando nicht gefunden.
./fn_sendmail.sh: Zeile 98: EU: Kommando nicht gefunden.
You called an option but didn't specified it! Usage of --api
--api [eu,us]
        Description: Sets the API endpoint for Sparkpost
        Necessary: No
        Default: EU

2 个答案:

答案 0 :(得分:0)

您可能需要

shift 2

同时删除--api 位置(美国/欧盟)。

答案 1 :(得分:0)

1)使用[]代替()

2)使用=代替==

请参阅@GordonDavisson的评论以了解原因