首先,抱歉我的英语不好。
我想启用带有日期的 Debug模式。我正在考虑使用一种重定向类型或另一种类型的变量,如下所示:
#!/bin/bash
DEBUG_MODE=1
if [ $CHAMAC_DEBUG = 0 ]; then
output=/dev/null
elif [ $CHAMAC_DEBUG = 1 ]; then
output=>( while read line; do echo "$(date): ${line}"; done >> ~/output.log )
fi
echo "hi, im a echo" &> $output
但它对我不起作用......怎么办呢?????
最佳答案
我不太确定“ Debug模式”是什么意思,但是如果您想仅在定义特定变量时打印附加输出,您可以这样做:
#!/bin/bash
function print_debug {
[ $DEBUG_MODE -eq 1 ] && echo "$(date) $1"
}
DEBUG_MODE=0
print_debug "Test 1"
DEBUG_MODE=1
print_debug "Test 2"
输出:
$ <b>./test.sh</b>
Test 2
您还可以通过将调试消息回显到不同的文件描述符来将调试输出与常规输出分开:
function print_debug {
[ $DEBUG_MODE -eq 1 ] && echo "$1" 1>&3
}
这样您就可以根据需要将 STDOUT、STDERR 和调试输出重定向到不同的文件。
关于bash - 向 bash 脚本添加 Debug模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880648/