日期:2014-05-16  浏览次数:20688 次

关于自定义调试信息的疑问
求助一个书上看到的例子 目的是为了自定义格式显示调试信息

里面通过修改_DEBUG变量来建立风格。
如果没有把_DEBUG=on传递给脚本那么调试信息就不会打印出来。

测试这个功能,书上有例子,其中有:

function DEBUG()
{
[ "$_DEBUG"=="on" ] && $@ || :
}

如果直接用 _DEBUG=on ./要执行的脚本 我能够理解。
但是这个函数里究竟要做什么没看懂。

那个&&的意义何在呢?为什么"$_DEBUG"=="on"和“$@”这个参数传递的东东可以与呢?
非常困惑 望解答!
linux ?shell 调试

------解决方案--------------------
引用:
解决了 这个写法是一种省略写法 其实是表示执行【】里面的逻辑判断 如果为真,就执行&&后面的部分 如果为假就执行
------解决方案--------------------
后面的。
至于双引号,可以防止字符串比较中可能遇到的问题。

补充一点  双引号可以屏蔽掉变量中的除`,$,\之外的字符,如果变量中间有空格,不加双引号,会被解释为分隔符,然后空格后面的参数会被解释为变量或命令,容易出错。