記事のディレクトリ
はじめに(if文の3つの基本タイプ)
if文の適切な使用により、簡単なシェルスクリプトでは(もし......そう......)、シェルスクリプトは、完全なさまざまな管理タスクに異なる条件に応じて、特定の「常識」を持つことができる基本的な文の構造であれば三種類。
if文の単一の分岐
シングル分岐構造については、「条件が満たされた」場合にのみ対応するコードを実行するか、何もしません。
1.1構文
if 条件测试操作
then
命令序列
fi
単一手足の1.2応用例
例えば:
(1)は、シェルスクリプトjiaoben.shを作成します。
[root@localhost opt]# touch jiaoben.sh
LSと(2)の表示optディレクトリには、フォルダを発見しました。
[root@localhost opt]# ls
jiaoben.sh rh
[root@localhost opt]# vi jiaoben.sh
あなたのフォルダ全くAAAは、AAA optディレクトリのフォルダを作成していない場合は、次の文はjiaoben.shで書かれている場合(3)。
#!/bin/bash
if [ ! -e "/opt/aaa/" ]
then
mkdir /opt/aaa
fi
(4)スクリプトを実行するには、optディレクトリは、AAAフォルダが作成されていた参照してください。
[root@localhost opt]# source jiaoben.sh
[root@localhost opt]# ls
aaa jiaoben.sh rh
[root@localhost opt]#
第二に、2分岐if文
デュアル分岐構造については、「条件が満たされていない」とき、そうでなければ、別の操作を行います。
2.1構文
if 条件测试操作
then 命令序列1
else 命令序列2
fi
分岐の2.2応用例
例えば:
上記jiaoben.sh(1)if文我々はスクリプトを書く:あなたはオプトないAAAファイルディレクトリのフォルダを行う場合は、すでにAAABBBフォルダを作成後、オプトディレクトリ内のファイルを持っている場合は、フォルダAAA、AAAを作成します。
#!/bin/bash
if [ ! -e "/opt/aaa/" ]
then
mkdir /opt/bbb
else
mkdir /opt/aaabbb
fi
LSでディレクトリを表示することを選ぶと(2)は、jiaoben.shスクリプトを実行し、何のフォルダを発見した、AAAを作成したフォルダを見つけ、AAAフォルダが既に存在する場合、スクリプトを実行し、AAABBBフォルダを作成しました。
[root@localhost opt]# ls
jiaoben.sh rh
[root@localhost opt]# source jiaoben.sh
[root@localhost opt]# ls
aaa jiaoben.sh rh
[root@localhost opt]# source jiaoben.sh
[root@localhost opt]# ls
aaa aaabbb jiaoben.sh rh
[root@localhost opt]#
第三に、多分岐if文
elifとなら状態の入れ子にされた状態の、すなわち複数の多分岐構造のため。これらは相互に排他的な複数の条件に応じて異なる操作を実行することができます。
3.1構文
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列3
fi
3.2アプリケーション例多分岐
例えば:
(1)単純な計算書き込ま
#!/bin/bash
echo "----------------------------------"
aaa=欢迎使用XX的计算器
echo "$aaa"
echo "----------------------------------"
read -p "请输入第一个整数:" bbb
read -p "请输入你需要进行的运算,加法(+),减法(-),乘发(x),除法(/),取余(%):" ccc
read -p "请输入第二个整数: " ddd
if [ $ccc = "+" ]
then
num=`expr $bbb + $ddd`
echo "$bbb+$ddd结果为$num"
elif [ $ccc = "-" ]
then
num=`expr $bbb - $ddd`
echo "$bbb-$ddd结果为$num"
elif [ $ccc = "x" ]
then
num=`expr $bbb \* $ddd`
echo "$bbb x $ddd 结果为$num"
elif [ $ccc = "/" ]
then
num=`expr $bbb / $ddd`
echo "$bbb / ddd结果为$num"
elif [ $ccc = "%" ]
then
num=`expr $bbb % $ddd`
echo "$bbb % $ddd结果为$num"
else
echo "请输入正确的运算"
fi
(2)スクリプトを実行
注意事項
1は、シェルで、当時と場合は、内部を入力したい場合は、あなたがそれらを分離するために、セミコロンを使用する必要が同じ行に別の声明です。
図2は、[]は、音符「[」と前「」後にスペースを含める必要があり、試験条件を示します。
3.あなたは、単に使用している場合>や<数、システムが「\」ターン意味での前のターンとシンボルを追加する必要があり、正しい結果を表示することは可能であるが、出力または入力のリダイレクトとして考えられているが、実際に間違っていることになります。