シェルループ制御文
1、もしフォーマット
、スクリプト形式
#!/ binに/ bashを ###このスクリプトは、主に20190909を行使された ###このスクリプトは、主に使用されている場合はループ; ###裁判官のバッチ実行パラメータがnullであるかどうか、 もし[!$ 1] 、その後 「エコー** ******バッチ実行形式:SH $ 0 BatchTask_1 " BREAK Fiの ###パラメータがバッチであるか否かを判定するBatchTask_1 canshu BatchTask_1 = 場合、テスト1 = $ $ canshu。 次いで SH 1 $ start.sh。 他 エコー" ***** 「!****バッチ実行パラメータが正しくない、次のパラメータのバッチ実行形式 エコー」*********バッチ実行形式:SH $ 0 BatchTask_1「 BREAKの Fiの
B、コマンドライン形式:
[$(のps -ef | grepの-c "sshは")1 -ge]場合は、最後のエコー>> /ホーム/ / 1 /がlast_log.shログ、Fiを提供して
2、それ以外の場合
#!/ binに/ bashのの パラメータは、バッチの実行が### BatchTask_1に等しい決定 canshu = BatchTask_1 テスト$ 1 = $ canshuのIF その後、 SH start.shは$ 1 他 エコー「パラメータ*********バッチ実行が正しくありません「!次のバッチ実行形式をパラメータしてください エコー」*********バッチ実行形式:SH $ 0 BatchTask_1「 BREAKの Fiの
3、他のelif場合
#!/ binに/ bashが ###このスクリプトは20190909で書かれた テスト$ 1 = Mは、IF その後、 「これは男だった!」エコー $ 1 = Fテストのelif 、その後 エコー「これは女だ!」 他 の未知のセックスの」エコー、細かいこと! " Fiの
サイクル4、。
、スクリプト形式:
#!/ binに/ bashを ###このスクリプトは、主に接触ループに使用されます 。このスクリプトは20190909に書かれた### 1 2 3 4 5で私のため か エコー「これは$私のサイクルでは!」 DONE
B、コマンドライン形式:
"!これは$ Iサイクルである" エコーん;行わI 1 2 3 4 5中のため、
5、循環中
ループはコマンドのサイクルの一連の実行を継続しながらのためだけでなく、試験のために、通常、コマンド入力ファイルからデータを読み取ります。
#!/ binに/ bashの ループながら###このスクリプトは、主に実際に使用されます; ###このスクリプトは20190909で書かれた; int型= 1 間(($ int型<= 5)) を行う RES = `exprの$ int型\ * $ int` エコー"$ RES $に等しいの$ int型* int型" LET "$ int型++" DONE
テストループしながら、
#!/ binに/ bashを ###このスクリプトは20190910で書かれた ###このスクリプトは、主にテストを循環させながら使用されている。 =========== >> Ctrlキーを押しながらスクリプトを終了D」エコー! !!「 エコー-n -e」あなたが入力したい名前を入力してください:N- \「 しばらく読むRESが ない $ RESがリトルcaijiあるエコー」!!! " DONE
B、無限ループ
#!/ binに/ bashの ###無限ループ int型= 1 しばらくtrueに ない "$ int型"エコー レットを"INT ++" DONE ###コマンドライン形式; trueにしばらく; "真の"エコーん。DONE。
6サイクルまで
停止条件が真になるまでループは、一連のコマンドを実行するまで、
ループまで逆にループ処理モード決意条件が偽を返しながら、ループ本体内のステートメント、またはループの外に続きます。
#!/ binに/ bashは ###このスクリプトは、主にループするまで使用されている; ###このスクリプトは20190910に書かれた、 「印刷出力は、すべての整数の特定の数よりも少ない」エコー [!$ 1] IF その後、 「エコー==== === >>スクリプト実行形式:SH $ 0パラメータ1 " BREAKの Fiの INT = 0 になるまで[int型$ -gt $ 1] ない のint $をエコー う" int型++ " DONE
図7に示すように、ケース
シェルは、ケースステートメントは、マッチングが成功した場合、対応するコマンドが実行され、値のパターンを一致させるために使用することができる、マルチSELECT文のcase文です。
#!/ binに/ bashの ###スクリプトは主にこの演習の場合に使用される ###このスクリプトは20190910書かれた IF [!$ 1] その後、 実行======== =====」エコースクリプトコマンドフォーマットのエラーを==== " エコー"実行========形式:SH start.shパラメータ" BREAK 他の $ 1ケースを BatchTasck_WZ) SH start.sh BatchTasck_WZ 実行されているエコー"のバッチは、次のとおりです。shのstart.sh BatchTasck_WZ " ;; BatchTasck_MS) SHのstart.shのBatchTasck_MSは " SHのstart.shのBatchTasck_MS:エコー"バッチ実行中である ;; BatchTasck_HK) SH start.sh BatchTasck_HK 「SHのstart.shのBatchTasck_HZ:れるエコー"バッチ実行中 ;; BatchTasck_ZA ) SH start.sh BatchTasck_ZA 実行されているエコー」のバッチは、次のとおりです。shを開始。SH BatchTasck_ZA」 ;; *) エコー「バッチスクリプトパラメータ================= >> MSは次のとおりです。BatchTask_MS」 エコー「================ =バッチスクリプトパラメータ>> WZは次のとおりです。BatchTask_WZ " バッチスクリプトのパラメータは、エコー" ================= >> HKがある:BatchTask_HK " エコー" ======バッチスクリプトパラメータ=========== >> ZAは次のとおりです。BatchTask_ZA " ;; ESACの Fiの
ループのうち8
リサイクルプロセスでは、時にはサイクルの終わりにループの外に必要な時間の条件を満たしていない、あなたがこの機能を実現することができる2つのコマンドがあります。破ると継続は、
ブレーク
すべてのサイクルを抜け出す許可する(後にすべてのサイクルの実行を終了)
#!/ binに/ bashが ###このスクリプトは、主に運動のbreakコマンドのために使用されている; ###このスクリプトは20190910で書かれていた [!$ 1] IF その後、 「このスクリプトの実行をエコー========== >>形式:SH $ 0パラメータ1 " エコー" ========== >> 1つの文字形式パラメータが" BREAK 他の テスト$ 1 =髪のIF その後、 エコー" ========== >>これは単なる楽しみではありません!!「 BREAK 他の $ 1兄にエコー」!! " Fi回線 Fiの
B、継続
コマンドに似breakコマンドを続け、少しだけ違いが、彼はただ、現在のサイクルのうち、すべての循環の外にジャンプしません。
#!/ binに/ bashは ###このスクリプトは、主にコマンドを継続実施するために使用される; ###このスクリプトは20190910書かれた 真にはしばらく 行う エコー-n -e「あなたが入力したい名前を入力してください:N- \」 読み取り名 [!$名]のIF その後、 続行を 他の テスト$名=髪のIF その後、 エコー「========== >>これは単なる楽しみではありません!!」 続行 他 エコー「$ 1兄弟に!!」 。5 SLEEP Fiの Fiの DONE