冒号命令是空命令.
:构造在变量的条件设置中也很有用.例如,
: ${var:=value}
如果没有:,shell会尝试将$var作为命令进行评估. < = ???
我不太明白上述陈述中的最后一句话.谁能给我一些细节?
谢谢
解决方法:
尝试
var=badcommand
$var
你会得到
bash: badcommand: command not found
尝试
var=
${var:=badcommand}
你会得到同样的.
shell(例如bash)总是尝试在每个命令行上运行第一个单词作为命令,即使在进行变量扩展之后也是如此.
唯一的例外是
var=value
外壳特别对待.
您提供的示例中的技巧是${var:= value}适用于命令行上的任何位置,例如
# set newvar to somevalue if it isn't already set
echo ${newvar:=somevalue}
# show that newvar has been set by the above command
echo $newvar
但我们甚至不想回应价值,所以我们想要的东西比
echo ${newvar:= somevalue}.
:命令允许我们在没有任何其他操作的情况下执行分配.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。