linux shell debug


图中这一段有点不理解,可以的话请详细叙述下这个语法规则和调用顺序,感谢了

图中代码:

#!/bin/bash
function DEBUG()
{
    [ "$_DEBUG" == "on" ] && $@ || :
}
for i in {1..10}
do
    DEBUG echo $i
done

图片描述

阅读 2.4k
1 个回答
[ "$_DEBUG" == "on" ] && $@ || :

这句分三部分

  1. [ "$_DEBUG" == "on" ]
    这是条件表达式, 它检查环境变量 _DEBUG 的值是否等于 on.
  2. $@
    这是将函数参数作为命令执行, 本例的函数参数是 "echo xx".
  3. :
    这是 "空命令", do nothing.

这三部分通过 &&|| 串联起来, 形成 cond && cmd1 || cmd2 结构,
表示当 cond 条件为真时, 执行 cmd1, 否则执行 cmd2.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题