Shellでのループ
6907 ワード
forサイクルフォーマット 変数値がリストにある場合、forループはすべてのコマンドを順次実行し、変数名を使用してリストから値を取得します. コマンドは、有効なshellコマンドおよび文です.変数名は任意の単語です. inリスト使用法は選択可能であり、それを使用しない場合、forループはコマンドラインの位置パラメータを使用する. inリストには、置換($)、文字列、ファイル名を含めることができます. demo1
demo2 demo3
注意:*in後はコマンド反引用符*印刷ファイルの内容は行+スペースで1行 demo 4 in後に文がない場合、文は に等しい.
whileサイクルフォーマット
注意:whileとdoの間には通常1つのコマンドですが、いくつかのコマンドを置くことができます.複数のコマンド間をセミコロンで区切る!コマンドは通常、テスト条件として使用されます.
注:ファイルから変数を読み込むと、フォーマット
条件は任意の試験条件であり、試験はサイクルの最後に発生するので、サイクルは少なくとも1回実行される.
breakとcontinue break[n]--ループを終了する埋め込みループであれば、ループ個数 からnを指定してループをスキップすることができます. continue現在のループを飛び出して次のループを続行!!!
注意:continueコマンドはbreakコマンドと似ていますが、重要な違いは少ししかありません.ループから飛び出すことはありません.このループステップから飛び出すだけです.まとめ:breakジャンプcontinueスキップ
for in
do
1
2
done
#!/bin/bash
for i in 1 2 3 4 5
do
echo $i
done
#!/bin/bash
for i in "aaa bbb ccc "# ,
do
echo $i
done
echo " "# 。
for i in aaa bbb ccc
do
echo $i
done
#!/bin/bash
for loop in `cat myfile`
do
echo $i
done
注意:*in後はコマンド反引用符*印刷ファイルの内容は行+スペースで1行
in $@
#!/bin/bash
#for_noin03.sh
i=1
j=1
k=1
for param
do
echo "param i #${i} j #${j} k #${k} is $param"
i=$[ $i + 1 ]//
j=$(expr $j + 2)//expr $()
k=$((k + 3))//
done
whileサイクル
while ( , )
do
1
2
...
done
注意:whileとdoの間には通常1つのコマンドですが、いくつかのコマンドを置くことができます.複数のコマンド間をセミコロンで区切る!コマンドは通常、テスト条件として使用されます.
#!/bin/bash
#while01
echo "ctrl+d quit"
while echo -n "please enter you name:"; read Name
do
echo "Yeah, you name: $Name";
done
#!/bin/bash
#while02
while read LINE
do
echo $LINE
done < names.txt
注:ファイルから変数を読み込むと、
done
untilサイクルuntil
do
1
2
done
条件は任意の試験条件であり、試験はサイクルの最後に発生するので、サイクルは少なくとも1回実行される.
#!/bin/sh
#until_mom
Part="/backup"
Look_Out=`df | grep "$Part" | awk '{printf $5}' | sed 's/%//g' `
echo $Look_Out;
until [ "$Look_Out" -gt "90" ]
do
echo -e "Filesystem $Part is nearly full " | mail root
Look_Out=`df | grep "$Part" | awk '{printf $5}' | sed 's/%//g' `
sleep 3600
done
#!/bin/bash
#until_mom
until [ ! -f a.lock ]
do
echo "check a.lock exist"
sleep 2
done
echo "you may start another application safely"
breakとcontinue
注意:continueコマンドはbreakコマンドと似ていますが、重要な違いは少ししかありません.ループから飛び出すことはありません.このループステップから飛び出すだけです.まとめ:breakジャンプcontinueスキップ