シェルスクリプトプログラミングの基礎(C)

構造化コマンド(A)

IF-THENとcase文。
ここに画像を挿入説明ここに画像を挿入説明
IF-THEN-else文
ここに画像を挿入説明
if文のコマンドがゼロ以外の終了ステータスコードを返すと、bashシェルは他にコマンドを実行します。
問題は、コードは、論理の流れを整理して、読みにくいことが困難であるというのif-then文を入れ子になりました。
elif:別の形態は、他の部分を使用することができます。より多くのif-then文aを書くために必要はありませんので。メイクのelif
他の別の部分のif-then文を使用して継続。
ここに画像を挿入説明
ELIFステートメントは、ステートメント線場合は、元に類似している別のテスト、コマンドラインを提供します。elifのコマンドの後に終了ステータスが0である場合には、bashは、コマンド文の第二部を実行します。このネスティング方法、コード明確に、より理解しやすいロジックを使用します。
ここに画像を挿入説明
elifのステートメントは、ゼロ以外の終了ステータス値を返します。これは、ブロックが実行され、他のブロックのelifます。

文のELIF複数は、一緒に文字列に続けて大IF-THEN-ELIFネストされた組成物を形成することができます。
ここに画像を挿入説明
0コマンドが基づい終了ステータスを返した場合、各コマンドが実行されます。bashシェルは、if文は、文の終了ステータス0が実行されるリターンの最初の部分のみの実装が続きます、覚えておいてください。

あなたは、コンテンツの変数かどうかを判断するためのテストコマンドを使用することができます。これは、単純な条件式が必要です。
ここに画像を挿入説明
テストコマンドは、条件をテストする場合、0の終了ステータスを返します。これは、ブロック内のその文の文が実行されます。
ここに画像を挿入説明
角カッコは、テスト条件を定義します。IF-THEN文の宣言testコマンドする必要はありません。第一及び第二の角括弧の前に角括弧の後にAを追加しなければならないことに注意してくださいブランクそれ以外の場合はエラーになります。
ここに画像を挿入説明
ここに画像を挿入説明
のみ不等号このスクリプトは、エラーはありませんが、結果は間違っています。何の説明は、リダイレクトスクリプトの出力よりも大きくなっていない
し。したがって、それはホッケーのと呼ばれるファイルを作成します。リダイレクトが正常に完了のために、テストコマンドは、if文、0の終了ステータスを返し、すべてのコマンドが正常に締結されていると思います。
この問題を解決するために、我々は適切に不等号エスケープする必要があります。
ここに画像を挿入説明
比較試験は、大文字が少ない小文字以上であると考えられています。soryコマンドの代わりに、使用が定義されたシステムのローカライズされた言語設定をソートされます。小文字は大文字の前に表示されます。
ここに画像を挿入説明
ここに画像を挿入説明
複合条件テスト
文は、テストを組み合わせることブール論理を使用することを許可する場合、その後。:2つのブール演算子を利用できますがあります
[条件1] && [条件2]とブール演算子は、コマンド実行の一部、2つの条件が満たされなければならないしましょう。
[条件1] || [条件2] OR ブール演算子、任意の条件は、コマンドの実行の一部その後、TRUEです。

ダブル括弧
ここに画像を挿入説明
式には、任意の割り当てや数学的な比較式をすることができます。標準的な数学演算子に加え、テストコマンドを使用し、
二重括弧のコマンド表12-4のリスト他の演算子が使用されます。
ここに画像を挿入説明
コマンド括弧を倍増させることができますまた、if文の中で使用されるスクリプトで一般的なコマンドを割り当てるために使用することができます。
注、二重括弧である必要はありませんが、エスケープ式の数よりも大きい場合これは、コマンドの二重括弧提供する別の高度な機能です。

ダブル角括弧:文字列を比較するための高度な機能を提供します。
ここに画像を挿入説明
双方は、括弧内の式を使用しましたテストコマンド文字列の比較基準が採用します。しかし、それは利用できません別の特徴テストコマンドを提供します - パターンマッチング(パターンマッチング)。

場合[[$ USERは== R * ]]
ビス文字列がパターンと右(R *)に等しく、及びパターンマッチング規則が適用されます。それは文字Rで始まるかどうかを確認するために、環境変数USERコマンドと一致するように、二重の角括弧。もしそうなら、比較することによって、シェルは、コマンドセクションを実行します。

ケースコマンドを使用すると、常に同じ変数の値を確認するために、すべてのelif文を記述する必要はありません。単一可変リスト形式を使用して、チェック値が複数の場合のコマンド。
ここに画像を挿入説明

35元記事公開 ウォン称賛49 ビューに10万+を

おすすめ

転載: blog.csdn.net/qq_44710568/article/details/105072161