質問: solaris7のcシェル文字数制限について solaris7でcシェルスクリプトを使っています。 lsで拾ったファイル名をforeach文でまわしてみたのですが 文字数(ファイル数?)の制限に引っかかってしまいうまく回りません。 そこで質問なのですが、 solaris7のcシェルforeach文で回せる文字数の限度をご存知の方いらっしゃいましたらご教授下さい。 宜しくお願い致します。
回答: 確か行数制限だったと思います。 foreach 文は一時的に memory に記録してぐるぐる回すものですので 記憶できる行数に制限があるはずです。 といっても物理的に memory を増やしてもダメだったはずですので(同じ経験があります) 解決案としては 1.ls の出力をファイルに落として split で 500行に区切る(確か500 くらいならいけました) xxx.aa のファイル処理を終えたら xxx.bb にいくようにする 2.while 文を使う 差ですが、foreach 文の方がメモリに格納して実施する為か while と比べて処理は早いです。 大量のファイルを処理する時は foreach をお勧めします。 作るのが面倒ですが。。。