我正在wmic
Linux系统上使用Windows系统收集信息。为此,我进行了各种wmic
调用,并将它们的输出存储在一些变量中。收集所需数据后,将echo
这些变量(用冒号分隔)保存到一个文件中。
但是,当变量存储“空”值时,就会出现问题,因为它只显示两个连续的冒号,而不显示任何内容。
当变量中存储有空值时,如何printf
利用它来显示“连字符”?
答案1
您可以使用以下语法:
"${var:-word}"
$var
如果变量的值已设置且不为空,则这将替换该变量的值;如果不是,则将替换为 as 给出的任何内容word
。例如:
$ var=foo
$ echo "${var:-bar}"
foo
$ var=
$ echo "${var:-bar}"
bar
因此,根据您的具体情况,您可以使用:
echo "${var:--}"
或者更安全、更便携:
printf '%s\n' "${var:--}"