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設定されていない場合は失敗します。)

よりバッシュ固有で、はるかに優れています:

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

このテスト構成を試してください:

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