シェルスクリプトの1つに問題があります。数人の同僚に尋ねましたが、彼らは皆、頭を振っただけです(少しひっかいた後)ので、私は答えを求めてここに来ました。
私の理解によると、次のシェルスクリプトは最後の行として「Count is 5」を出力するはずです。そうでないことを除いて。「Count is 0」と出力されます。「while read」が他の種類のループに置き換えられた場合、正常に機能します。スクリプトは次のとおりです。
echo "1"> input.data echo "2" >> input.data echo "3" >> input.data echo "4" >> input.data echo "5" >> input.data CNT = 0 cat input.data | 読みながら 行う CNT ++; echo "$ CNTへのカウント" やった echo "カウントは$ CNT"
なぜこれが起こり、どうすればそれを防ぐことができますか?Debian LennyとSqueezeでこれを試しましたが、同じ結果です(つまり、bash 3.2.39とbash 4.1.5。シェルスクリプトウィザードではないことを完全に認めているので、ポインタをいただければ幸いです。