Bashの条件付き割り当て

Bashの条件付き割り当て

(and)でbash与えられた場合、変数にzsh値を割り当て$1、それ以外の場合はデフォルト値を割り当てる最も簡潔な方法は何ですか?w$14

頑張った

w=$(( $1 != "" ? $1 : 4))

ただし、これを行うとエラーメッセージが返されます。

これより簡単なことがありますか?

w=4; [[ $1 != "" ]] && w=$1

答え1

フォームのパラメータ拡張の使用${parameter:-word}

${parameter:-word}デフォルト値を使用します。引数が設定されていないか空の場合、単語の拡張が置き換えられます。それ以外の場合、パラメータ値は置き換えられます。

w=${1:-4}

コロンを省略すると、設定されていないパラメータのみがテストされます。

w=${1-4}

関連情報