Bashスクリプト:無効なパラメータ値が設定されました。

Bashスクリプト:無効なパラメータ値が設定されました。

質問

いくつかの異なる(オプションの)コマンドライン引数を受け入れるスクリプトがあります。特定のパラメータの場合、値は「少なく」発生しますが、その理由は不明です。

バッシュコード

while getopts ":d:f:p:e:" o; do
  case "${o}" in
        d)
            SDOMAIN=${OPTARG}
            ;;
        f)
            FROM=${OPTARG}
            ;;
        p)
            PAGER=${OPTARG}
            ;; 
        e)
            DESTEXT=${OPTARG}
            ;;                       
        *)
            show_usage
            ;;          
    esac
done

source "./utils.sh"
test #test includes

echo "$SDOMAIN is the sdomain"
echo "$FROM is the from"
echo "$PAGER is the pager"
echo "$DESTEXT is the extension"

exit

出力

スクリプトを実行すると、次のように表示されます。

lab-1:/tmp/jj# bash mssp.sh -d testdomain.net         
Utils include worked!                                       
testdomain.net is the sdomain                                               
 is the from                                                                    
less is the pager                                                               
 is the extension                                 

なぜポケットベルで「より少ない」値が出るのかわかりません。空の文字列が表示されると予想されます。私の間違いを見たら教えてください。私はこれをあまりにも長い間見守っていました。

ベストアンサー1

スクリプトはPAGERを設定しませんが、現在の環境から変数をエクスポートできますdeclare -p PAGER

スクリプトで異なる変数名を使用することをお勧めします。これが通常、自分の変数に大文字の変数を使用しないことが推奨される理由です。

おすすめ記事