対。${parameter:-word}
パラメータ拡張の使用方法を学びます。${parameter:=word}
${parameter:-word}
引数が設定されていないか空の場合、単語の拡張が置き換えられます。
${parameter:=word}
引数が設定されていないか空の場合、単語の拡張が引数に割り当てられます。次に、パラメータの値を置き換えます。
もちろん、主な違いは、各説明の最初の文、つまり代替対割り当てです。
substituted
しかし、実際には何かが時と時の間に何が起こるのかわかりませんassigned
。
最後に、いつ他のものを使用するのが適切ですか?
答え1
次の例を考えてみましょう。
#!/bin/bash
echo "${parameter:-a}"
echo "${parameter:-b}"
echo "${parameter:=c}"
echo "${parameter:=d}"
そしてスクリプト実行の例:
$ bash ex.sh
a
b
c
c
最初の項目echo
はparameter
設定されていないa
ため交換済み。が印刷されますa
。
2番目の項目ではecho
まだparameter
設定されていないb
ため交換済み。が印刷されますb
。
3番目の項目ではecho
まだparameter
設定されていないparameter
ため分散価値を与えてc
評価parameter
してください。が印刷されますc
。
第四のエコではparameter
はい 置くc
(前の文では)に設定されているため、対応する値が印刷されます。再印刷さc
れます。
設定されていないか空の場合、${parameter:-word}
計算結果はnullになりますが影響を与えないことがわかります。word
parameter
値parameter
中に${parameter:=word}
設定されます値設定されていない場合はparameter
空です。