質問
いくつかの異なる(オプションの)コマンドライン引数を受け入れるスクリプトがあります。特定のパラメータの場合、値は「少なく」発生しますが、その理由は不明です。
バッシュコード
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
。
スクリプトで異なる変数名を使用することをお勧めします。これが通常、自分の変数に大文字の変数を使用しないことが推奨される理由です。