makeがstderrに書き込むときにmakeを実行して中止するbashスクリプトがあります。エラーを作る: "ar:creating ../lib/libmgr.a"
make all 2>${ERROR_FILE}
ERR=$(cat ${ERROR_FILE})
if [ ! -z "${ERR}" ];
then
abort "Halted because of errors in make $1: ${ERR}"
fi
しかし、作るファイルに次を書き込みます:
ar: creating ../lib/libmgr.a
ar: creating ../lib/libnet.a
ar: creating ../lib/libeoc.a
ar: creating ../lib/libdvr.a
ar: creating ../lib/libmsg.a
ar: creating ../lib/liblgc.a
ar: creating ../lib/libshm.a
ar: creating ../lib/libsys.a
ar: creating ../lib/librsk.a
ar: creating ../lib/librep.a
ar: creating ../lib/libmdl.a
ar: creating ../lib/libmdb.a
ar: creating ../lib/libdat.a
ar: creating ../lib/libchs.a
これは何を意味するのでしょうか?コードは次のようですかこれらのエラーはありますか?そうでない場合、なぜ彼らは標準エラーに書き込まれますか?
「ERR = $(cat $ {ERROR_FILE})」が狂っていることを上記に追加します。あなたが望むのは、ファイルに内容があるかどうかを確認することです。これはtestでうまくいきます: 'if [! -s "$ {ERROR_FILE}"];エコー終了、サイズ0のファイル。 fi' – Sorpigal
このプロジェクトでは警告が表示されないので、警告でも中止する必要があります。ご協力いただきありがとうございます。すべてが "ar:"で始まるなら、今は中止していない。あなたがポイントを持っている@Sorpigalが、私は変数$ ERRを使用します。 –