bash での条件付き割り当て

bash での条件付き割り当て

bash(および)において、 が指定されている場合はzshの値$1を変数に、そうでない場合はデフォルト値に最も簡潔に割り当てるにはどうすればよいですか?w$14

私は試した

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

しかし、エラーメッセージが返されました。

これ以上に簡単なものはありますか?

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

答え1

形式のパラメータ展開を使用する${parameter:-word}

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

w=${1:-4}

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

w=${1-4}

関連情報