トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

sh:for/while:繰り返し処理 の変更点

Top / sh:for/while:繰り返し処理

*sh:for/while:繰り返し処理 [#o4e45c63]

繰り返し処理のサンプルです。

***forのサンプル [#q3d5d312]

■10回繰り返す
 for FILENAME in `ls -1 ./*.txt`
 for NUM in `seq 10`
 do
 echo $FILENAME
   echo $NUM
 done



■lsでファイルリストを取得してぐるぐる回す
 for FILENAME in `ls -1 ./*.txt`
 do
 echo $FILENAME
 done



***whileをつかってファイルを1行ずつ読み込む [#x0ad7f89]

よくググって書くのに覚えないので、メモ書き。

前パターン
 #!/bin/sh
 
 cat “ファイル名” | while read LINE
 do 
 
     echo $LINE 
 
 done

後ろパターン
 #!/bin/sh
 
 while read LINE
 do 
 
     echo $LINE 
 
 done < “ファイル名”



***sshと組み合わせて使用 [#z1c49116]
複数台あるサーバのあるディレクトリのファイルについて、更新日が70日以内のファイルを探すスクリプトはこんな感じです。


 #!/bin/bash
 
 TARGETLIST=target.txt
 
 while read LINE
 do
   if [ "A" = "A$LINE" ] 
   then 
     continue
   fi
   echo $LINE
   ssh -n $LINE 'find /var/log/ -name "*log" -mtime -70 -ls'
   echo ""
 done < $TARGETLIST
  
 


***リンク [#b947196e]

-[[http://shellscript.sunone.me/while.html]]
-[[http://www.sssg.org/blogs/naoya/archives/1124]]