変数が空の場合、ハイフンを印刷する方法は?

変数が空の場合、ハイフンを印刷する方法は?

wmicLinuxシステムでは、Windowsシステムを使用して情報を収集しています。これを行うには、さまざまなwmic呼び出しを実行し、その出力をいくつかの変数に保存します。必要なデータを収集したら、echoこれらの変数(コロンで区切り)をファイルに保存します。

ただし、変数が「空」の値を保存すると問題が発生します。これは、2つの連続コロンだけを表示し、何も表示しないためです。

変数にnull値が格納されている場合にprintf「ハイフン」を表示するにはどうすればよいですか?

答え1

次の構文を使用できます。

"${var:-word}"

$varこれは、変数の値が設定されていて空でない場合、またはif notによって提供された値に置き換えられますword。たとえば、

$ var=foo
$ echo "${var:-bar}"
foo
$ var=
$ echo "${var:-bar}"
bar

したがって、特定の状況に応じて、以下を使用できます。

echo "${var:--}"

またはより安全で携帯性が向上しました。:

printf '%s\n' "${var:--}"

関連情報