ファイルの行数を知りたいとき、
UNIXでcat file.text | wc -l
のようにすれば行数が分かると思います。
しかし、
シェルスクリプトでファイルの行数で条件分岐をしたい場合、
1 LINE_COUNT="cat file.txt | wc -l" 2 if [ ${LINE_COUNT} -eq 1 ]; then 3 echo "ERROR text file was found, but empty!" >> $APP_LOG 2>&1 4 exit 1 5 fi
のように書いてシェルスクリプトを実行した場合、
hoge.sh: line 2: [: too many arguments
とメッセージが出てきてしまいます。
デバックオプションの結果では、+ '[' cat file.text '|' wc -l -eq 1 ']'というようにファイルの行数ではなくファイル名が${LINE_COUNT}に代入されています。
if [ ${LINE_COUNT} -eq 1 ];の${LINE_COUNT}にファイルの行数を代入させるにはどうすればよろしいでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/30 12:52
2018/09/30 13:04
2018/09/30 13:16