shell脚本中调试函数的含义

时间:2017-05-29 07:16:20

标签: linux bash shell

我是shell脚本的新手,并且看到了添加调试功能以启用脚本调试的方法。

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

我不太了解调试函数中的&& $@ || :,它用于什么?

1 个答案:

答案 0 :(得分:0)

$ @扩展到此上下文中的函数参数,更好的语法“$ @”以避免拆分包含空格的参数

例如:

DEBUG echo hello

$@ => echo hello

仅当_DEBUG变量等于“on”

时才执行此代码 仅当command1的返回状态为success(= 0)

时,才执行

command1 && command2 command2 仅当command1的返回状态失败(<> 0)时才执行

command1 || command2 command2

|| :如果_DEBUG变量不是“on”或命令返回状态<> 0它什么都不做:,所以|| :没用它就像它是一样不在这里。

: is a shell builtin which does nothing