我是shell脚本的新手,并且看到了添加调试功能以启用脚本调试的方法。
#!/bin/bash
function DEBUG()
{
[ "$_DEBUG" == "on" ] && $@ || :
}
for i in {1..6};
do
DEBUG echo $i
done
echo "Script executed"
我不太了解调试函数中的&& $@ || :
,它用于什么?
答案 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