if文:
文の形式:
1、単一の分岐の文:
条件であれば、その後、
文を実行
されます
唯一の条件がtrueの場合、実行文が戻ります。
2、二重の分岐文:
条件であれば、その後、
文1を実行し
他
文を実行2
されます
3、多分岐声明:
条件1であれば、その後、
文1を実行し
elif条件2;その後、
文を実行2
elif条件3;その後、
3実行文
...
他には、
声明にN-実行
Fiを提供して
実験の部:
はい、表示した場合に1、それが決定され、/ etc / inittabファイルには、100より大きい行での「/ etc / inittabのは大きなファイルです。」が表示人が「の/ etc / inittabファイルは小さなファイルです。」か
[ルート@のLSL〜] viの2 .txtの # / binに/!バッシュ A = `トイレ-lは/ etc / inittabファイル|カットは-d ' ' - f1` 場合は [$ -gt 100 ];その後、 エコー" は/ etc / inittabファイルは大きなファイルです。「 他 エコー」は/ etc / inittabファイルは小さなファイルです。" Fiの
図2は、ユーザが指定した、ユーザが管理者である場合、ユーザは、それは。それ以外の場合は、「ユーザーが管理者である」表示されるか決定するためにである「利用者が正規の利用者です。」
[ルート@ LSLは〜] viの6 の.txt # /!bin.bashの #は、
"ユーザーの入力を喜ば:" -p読むユーザー であれば ID -u $ 1&>は/ dev / nullに、次に = $(ID -u $を1 ) もし [$ -eq 0 ];次に エコー" $ 1夕食ユーザである" のelif [$ -ge 1 $ -a -lt 500 ];次に エコー" $ 1は、システムのユーザである" 他 エコー" $ 1れます通常のユーザー「 FI 他 エコー」$ 1のユーザーが存在しない" Fiの
図3は、ファイルが存在するかどうかを判断します
[ルート@のLSL〜]#viの7 の.txt #!/ binに/ bashのの #は、
ファイル: "入力を喜ばファイル" -p読んで いる場合、[-e $ 1 、その後;] 場合は [-f $ 1 ]は、次に エコー" ファイルを存在する「 他の エコーは、」$ 1存在しますが、ファイルではありません「 FI 他 エコー」$ 1は存在しません" fは
プログラムか否かをユーザのデフォルトのシェルbashのかどうかは、存在する場合、これらのユーザーの複数が存在するが、現在のシステム上に表示されるかを決定する4は、そうでなければそのようなユーザーを示しませんでした
[ルート@のLSL〜] viの5 .txtの #!/ binに/ bashのの #の はgrep " \ <nologinの\> " / etc / passwdファイル&>は/ dev / nullの 場合は $ [?-eq 0 ];その後、 エコー" cunzaiユーザー" エコー" のようなユーザーnologinに:" はgrepを" \ <nologinの\> " / etc / passwdファイル| -dカット" :" - F1 エコー" ユーザーの合計" はgrep " \ <nologinの\> " / etc / passwdファイル| トイレ- リットル 他 エコー「シェルユーザーが存在しない」 Fiの
5、例えば、ファイルを与えられた、スクリプトを記述します。/ etc / inittabを、空白行がファイル内に存在するかどうかを判断するために?B、もしそうであれば、その行番号空白行を表示し、そうでなければ空行が存在しません
[ルート@ LSL〜] viの4 の.txt # / binに/!のbash # の場合 [$ -f 1 ];その後、 grepを" ^ [[:スペース:]] * $ " /tmp/inittab.bak&>は/ dev / nullの 場合は [$?-eq 0 ];その後、 エコー" のスペースがあります。" grepを -n " ^ [[:スペース:]] * $ " /tmp/inittab.bak | -dカット「:」 - F1 終了0を 他の エコーない「は、このような:」 終了を1 Fiの 他 エコー「ファイルではありません終了しない、またはファイルを!」 終了2 Fiの
6、UIDとGIDは、あるかのように、のような、それはユーザが「いい子」であることを示しているかどうかを判断するためのスクリプトを書きます
[ルート@ LSL〜]#viの8 の.txt # / binに/!のbash #は、
"入力を喜ばユーザー:" -p読むユーザー ERNAMEが = USER1の USERID = 'ID - U $ USERNAME` GROUPID = `ID - グラムの$ USERNAMEを` 場合は、[$のUSERIDは- EQ $ GROUPID]は、次に エコー「良い男の子を」 他 エコー「不良少年」 Fiを提供して
7、自分のパスワードの警告期間を得るために、ユーザが与えられ、スクリプトを記述し、今日はすでに警告期間に満たない場合は、ユーザーがタイムパスワードから最後に変更されたかどうかを判断します
[ルート@ LSL〜]#viの9 の.txt # / binに/!のbash #は、
"入力を喜ばユーザー:" -p読み、ユーザ Wが = `grepの" 学生"の/ etc /影を| -dカット: - f6` S = `日付+%S` T =` exprの$ S / 86400 ` L =` grepの" ^学生"の/ etc /影| -dカット: - f5` N = `grepの" ^学生"の/ etc /影| -dカット- f3` SY = $ [$ 1 - $ [$ T- $ N]] なら [$のSY - LTする$ W]。その後、 エコー「警告」 他 エコー「OK 」 Fiの
より大きく、それ以外の場合はOKが表示され、「いくつかのコマンドが消えます」場合は、合計でコマンド履歴のコマンドの履歴を決定する8は、1000個のエントリよりも大きく、
[ルート@ LSL〜]#viのB.TXT # / binに/!のbash #1 NUM = `歴史| トイレ- 'L' であれば [$ NUM -gt 1000年];その後、 エコー「いくつかのコマンドが消えます」 他 エコー「OK 」 Fiを提供して
ファイルがディレクトリである場合、通常のファイルは、ショーでも、表示された場合は9、ファイル与えられ、それ以外の場合は、「認識しない」が表示さ
[ルート@のLSL〜]#viのc.txt #!/ binに/ bashのの #は 読ん -p " :入力を喜ばファイル" ファイル 場合 - [ その後、F $ファイル] エコー" 普通のファイル" のelifの[ - D $ファイルを] ;その後、 エコー「ディレクトリのファイルは、」 他の エコー「を区別することができない」 Fiの
10、それ以外の場合は、「そのようなファイルを」表示しない、このパラメータは、「OK」を表示上の既存のファイルがあるかどうかを判断するためのパラメータ(ファイルパス)を受け入れることができますスクリプトを書きます
[ルート@のLSL〜]#viのd.txt #!/ binに/ bashのの #は 読ん -p " :PASH入力してください" ルート 場合 - [ その後、Fの$ルート] エコー" OK " 他 エコーない" そのようなファイル" Fiを提供して
11、スクリプトに2つのパラメータを渡し、スクリプトを作成し、両方は、製品二つの和を示し
[ルート@ LSLは〜]#viのe.txt # / binに/!のbash #が 読み -p " plesae入力NUM1を:" NUM1が 読み -p " を入力してくださいからnum2:" からnum2の 合計 = $ [$ NUM1 + $ num2の] 製品 = $を[$ NUM1 * $ num2の] エコー" $ NUM1 + $ num2の= $合計" エコー" の$ NUM1 " X " $ NUM2 = $製品"