【发布时间】:2023-01-13 06:37:53
【问题描述】:
如果之前未定义foo,我想将变量foo设置为bar。目前我正在使用
foo = foo ? foo : bar
但我觉得在 POSIX awk 中有一种更聪明的方法可以做到这一点。例如在 POSIX Shell 中我可以写
${foo:-bar}
【问题讨论】:
-
如果定义了
foo但“不真实”,例如 foo=0 或 foo="",那么也会将foo设置为bar。这与 POSIX shell 示例不同。 -
awk 中没有这样的速记。顺便说一句
foo = foo ? foo : bar是不正确的。可以将其初始化为foo = ""或foo = 0。 -
使用 GNU awk 你有 typeof 但那只是 GNU。
标签: awk posix conditional-operator