• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:bashのwhileとshiftについてです。)

シェルスクリプトで複数のファイルを順番に処理する方法とは?

このQ&Aのポイント
  • シェルスクリプトで複数のファイルを順番に処理する方法について解説します。
  • whileとshiftを使って引数の個数が0より大きい限り、処理を繰り返すことができます。
  • エラーメッセージの 'syntax error near unexpected end of file'は、文の終わりが正しくないことを示しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • 8shi8
  • ベストアンサー率32% (90/274)
回答No.1

bashのwhile文の書式は以下のとおりです while 条件式 do 処理 done 質問の内容に合わせると以下の様になるはずです while [$# -le 0] do 以下の処理(*1) shift done

shiro857
質問者

お礼

while文の書式だけではなく自分の内容に合わせて回答してくださりありがとうございます。 おかげて実装することができました。 また機会があればお願いします。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>引数に複数のファイルの絶対パス(複数)を受け取り、それらのファイルを順番に処理し そういうときは、普通は for を使います。 for f do WC=(`wc < "$f"`) FILE=`basename "$f"` cp -p "$f" "${FILE}_${WC[0]}" if [ ${WC[2]} -ge 10000 ] then gzip -9 "${FILE}_${WC[0]}" fi done > このエラーは最後がしっかり閉じれていないということでしょうか? while の構文は、 while ~ do ~ done です。

shiro857
質問者

お礼

本当はwhile文で書きたかったのですがfor文の書き方も教えてくださってありがとうございます。 助かりました。また機会がありましたらお願いします。

関連するQ&A