Bashのマニュアルによると、パラメータに値が割り当てられるとパラメータが設定されます。
Bashには2つの概念があります。
- 変数があります
- 変数に値が割り当てられました。つまり、設定されていますか?
unset
変数または関数を削除します。unset
変数を生成するかどうか- 存在しなくなったり、
- まだそこにいますが、値が割り当てられていませんか?
b=
変数に値を割り当てますかb
?b
もう決めましたか?変数が
declare
存在しても変数を生成しますか?
答え1
変数が設定されていない場合は存在しません。例えば、
unset var
echo ${var?"this is not set"}
-bash: var: this is not set
シェルは以下を示しています。エラーメッセージ設定されていない場合var
。実行されていませんecho
。 (変数を確認し、存在する変数に値を割り当てる方法については、bashのマニュアルページを参照してください(ただし、値がある、値がない、または存在しない変数かもしれません)。)
より一般的なケースは、通常はエラーなしで交換することであり、次のように処理されます。
unset var
echo ${var:-This is a new value}
This is a new value
変数が存在し、値を持ちます。例えば、
var=123
echo ${var?"this is not set"}
123
変数は存在しますが空です(""
)
var=
echo ${var?"this is not set"}
echo によって出力された値var
、これには何も含まれず、一般的な改行文字が続きます。
課題は次のとおりです。
var=123
echo $var
123
宣言は変数に属性を割り当てるために使用されます(詳細はbashのマニュアルページtypeset
またはdeclare
以下を参照**shell builtin commands**
)。