Bashの位置パラメータにどのように値を割り当てることができますか?私は、デフォルトのパラメータに値を割り当てたいと思います:位置パラメータへの割り当て
if [ -z "$4" ]; then
4=$3
fi
4はコマンドではないことを示しています。
Bashの位置パラメータにどのように値を割り当てることができますか?私は、デフォルトのパラメータに値を割り当てたいと思います:位置パラメータへの割り当て
if [ -z "$4" ]; then
4=$3
fi
4はコマンドではないことを示しています。
set
ビルトインは--
は、オプション(例えば-x
)のように見えるものから保護し、位置パラメータ
$ set -- this is a test
$ echo $1
this
$ echo $4
test
を設定する唯一の方法です。あなたが望むかもしれないあなたの場合
:
if [ -z "$4" ]; then
set -- "$1" "$2" "$3" "$3"
fi
が、おそらくあなたも-z
のパラメータ数$#
代わりのテストで見たいと思うかもしれません
if [ -z "$4" ]; then
# default the fourth option if it is null
fourth="$3"
set -- "$1" "$2" "$3" "$fourth"
fi
としてより明確になります。あなたは第四パラメータでもう一度スクリプトを呼び出すことによって、あなたがやりたいことができ
:
if [ -z "$4" ]; then
$0 "$1" "$2" "$3" "$3"
exit $?
fi
echo $4
./script.sh one two three
意志の出力のように上記のスクリプトを呼び出す:
を './ $ 0'はスクリプトがPATH経由でアクセスされても動作しません。 '$ /'は '。/ script'と'/usr/local/bin/script'などで動作します。 – msw