edm*_*rce 16 debugging bash set
在制作复杂的bash脚本时,我经常会使用以下命令:
设置-x
如果脚本不正常,我可以调试脚本.
但是我有一些UI函数在调试模式下生成大量垃圾,所以我想将它们包含在条件中:
set -x
Run Code Online (Sandbox Code Playgroud)
问题是我无法弄清楚如何知道是否启用了调试模式.
我认为这是可能的,尽管有很多搜索,我似乎无法找到它.
提前感谢任何提示
Ort*_*ier 26
使用以下内容:
if [[ "$-" == *x* ]]; then
echo "is set"
else
echo "is not set"
fi
Run Code Online (Sandbox Code Playgroud)
连字符扩展为调用时指定的当前选项标志,set内置命令或shell本身设置的那些(例如-i).
$ [ -o xtrace ] ; echo $?
1
$ set -x
++ ...
$ [ -o xtrace ] ; echo $?
+ '[' -o xtrace ']'
+ echo 0
0
Run Code Online (Sandbox Code Playgroud)