如果未设置,则在Bash中将默认值分配给变量

bra*_*ito 2 bash

我知道我能做到:

echo ${var:-4}
Run Code Online (Sandbox Code Playgroud)

打印4如果var为null,

-n在这种情况下如何分配..?

echo ${var:--n} 不起作用.

虽然这确实有效..

echo ${var:---n}
Run Code Online (Sandbox Code Playgroud)

但在那种情况下它打印出来--n,我需要它打印-n.

cho*_*oba 8

问题不在默认情况下,而是在echo:-n具有特殊含义(检查help echo).printf改为使用:

printf '%s\n' "${var:--n}"
Run Code Online (Sandbox Code Playgroud)