プログラムの出力を整数として評価

プログラムの出力を整数として評価

コマンドラインの出力を評価してから200より大きい場合は、印刷するスクリプトを作成しようとしています。

このプログラムは、/exc/listディレクトリ内の「ストーリー」の数を式として数えます。たとえば、

/exc/list q show.today1.rundown

Today1リストに161個のストーリーがある場合、161個が返されます。

私は23の異なるディレクトリに対してこの値を計算する必要がありました。ストーリーの数が200を超える場合は、一時ファイル(/tmp/StoryCount.$date)で印刷する必要があります。

この比較を処理する最良の方法は何ですか?

ベストアンサー1

存在する強く打つ、変数は本質的に文字列(または文字列の配列)です。しかし、[ ]そして[[ ]]このコマンドには、引数を整数として扱う複数の演算子があります。 -lt -le -eq -ne -ge -gt

したがって、次のものを使用できます。

for dir in ${LIST_OF_DIRECTORIES}; do
  if [[ $(/exc/list q ${dir}) -gt 200 ]]; then
    echo "${dir}"
  fi
done > /tmp/StoryCount.$(date +%y%m%d)

ディレクトリ名にスペースが含まれている場合は、そのまま機能しません。

また、&&明示的な条件の代わりに別の答えを使用しますif。彼らは単一のステートメントに対して同じように機能し、&&私のスクリプトで使用する傾向がありますが、スクリプトを維持する人によってはより冗長で明示的な傾向があります。

おすすめ記事