3
awk:戻りステータスを強制しますか?
これは私の以前の質問のフォローアップです。 この便利なスニペットを使用して、/ etc / passwdのフィールド数を検証しています。次の例では、ユーザー「fieldcount1」と「fieldcount2」のフィールド数が間違っています。 $ awk -F: ' NF!=7 {print}' /etc/passwd fieldcount1:x:1000:100:fieldcount1:/home/fieldcount1:/bin/bash:::: fieldcount2:blah::blah:1002:100:fieldcount2:/home/fieldcount2:/bin/bash: $ echo $? 0 お気づきのとおり、awkは戻りステータス0で終了します。この観点からは、ここでは問題はありません。 このawkステートメントをシェルスクリプトに組み込みたいと思います。エラーであるすべての行を印刷し、戻りコードを1(エラー)に設定したいと思います。 特定の終了ステータスを強制しようとすることができますが、awkは1行のみを出力します。 $ awk -F: ' NF!=7 {print ; exit 1}' /etc/passwd fieldcount1:x:1000:100:fieldcount1:/home/fieldcount1:/bin/bash:::: $ echo $? 1 awkを強制的に終了ステータス「1」で終了させ、一致するすべての行を印刷できますか?