我整个上午一直在争论这段代码。在读完TL时,它终于明白了; DP我的if语句可能会混淆输出重定向与比较。
有问题的代码是:
#!/bin/sh
...
if [ $DEBUG_LEVEL > 2 ]
then
echo "I made it here"
echo "DEBUG: created run_all_somatic_SNV_steps" >>$LOG
fi
我的if语句是否会将stderr重定向与我想要的内容混淆? (将变量与数字2进行比较)
答案 0 :(得分:2)
对于一般的shell:
if [ $DEBUG_LEVEL -gt 2 ]
(但如果从未设置DEBUG_LEVEL
,则会失败。)
更多特定于bash,而且更好:
if (( DEBUG_LEVEL > 2 ))
答案 1 :(得分:1)
试试这个测试结构:
[ $DEBUG_LEVEL -gt 2 ]