[プログラム学習] shell #2「for文」

2015年12月1日

Shell テクノロジー プログラミング 特集

shell scriptのfor文は少しクセがある。 他の言語と違う点も多いので、注意しなければいけない。

色々な構文

普通に1から10までloopさせてみる

for1.sh

#!/bin/bash for i in 1 2 3 4 5 6 7 8 9 10 do echo $i done 実行してみる。 $ for1.sh >> 1 >> 2 >> 3 >> 4 >> 5 >> 6 >> 7 >> 8 >> 9 >> 10 次は、他の言語っぽく書いてみる

for2.sh

#!/bin/bash for ((i=1;i<=10;i++));do echo $i done 実行 $ for2.sh >> 1 >> 2 >> 3 >> 4 >> 5 >> 6 >> 7 >> 8 >> 9 >> 10 結果は同じだが、二重括弧にする ※doで1行使うのが気になったんで、forの行にくっつけてみました。 次はさらに簡単な記述

for3.sh

#!/bin/bash for i in {1..10};do echo $i;done 実行 $ for3.sh >> 1 >> 2 >> 3 >> 4 >> 5 >> 6 >> 7 >> 8 >> 9 >> 10 {1..10}で1〜10までの数字配列と同じになるんですね。

任意フォルダ内のファイル一覧をfor文で処理

lsコマンドと組み合わせることで簡単にファイル一覧を取得できます。

for4.sh

#!/bin/bash for i in `ls ~/.ssh`;do echo $i done 実行 $ for4.sh >> known_hosts

テキストファイルをfor文で1行毎に処理

テキストファイルを行ごとに処理するにはwhile文と組み合わせると簡単に行なえます。

text.txt

aaa bbb ccc

for5.sh

#!/bin/bash for i in ./text.txt;do while read line;do echo $line done< $i done 実行 $ for5.sh >> aaa >> bbb >> ccc

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。