ファイルに2行以上があることを確認しようとしています。次のスクリプトを作成しました。
(wc -l myfile | cut -c 1) -gt 2
しかし、エラーが発生します。予想フラグ "-gt"の近くに構文エラーがあります。どんなアイデアがありますか?
答え1
ファイルに3行以上が含まれているかどうかをテストするには:
if [ "$( wc -l <file )" -gt 2 ]; then echo 'more than two lines'; fi
あなたは$
前のものを見逃したし(...)
、それも逃したif [ ... ]
。$( ... )
コマンドの出力で何かをしようとしているので、コマンドの置き換えが必要です。
一部の人々は次の構文を好む。
test "$( wc -l <file )" -gt 2 && echo 'more than two lines'
そうでなければ
[ "$( wc -l <file )" -gt 2 ] && echo 'more than two lines'
ファイルを標準入力に入力してwc
問題を回避しますcut
。