0

我整个上午都在和这段代码争论。在阅读 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 进行比较)

4

2 回答 2

2

对于一般外壳:

if [ $DEBUG_LEVEL -gt 2 ]

(但如果DEBUG_LEVEL从未设置过,那将失败。)

更特定于 bash,并且更好:

if (( DEBUG_LEVEL > 2 ))
于 2012-12-10T20:11:10.943 回答
1

试试这个测试结构:

[ $DEBUG_LEVEL -gt 2 ]
于 2012-12-10T20:11:15.933 回答