シェルは、条件文のプログラミング

試験条件

テストファイル
整数テスト
ストリングおよびロジックテスト

if文

単一の分岐文では、if
デュアル分岐if文
の多分岐if文
if文を入れ子に

testコマンド

条件が満たされたときに試験特異的発現が確立され、試験文は、そうでなければ他の値が0を返します

格式1: test  条件表达式
格式2:[ 条件表达式 ]        //括号内空格

ファイルのテスト

[ 操作符 文件或目录 ]       //括号内空格

一般的なテスト演算子は
-d:(ディレクトリ)ディレクトリかどうかをテスト
テストディレクトリやファイルが存在する(存在し):-e
-f:テストファイル(ファイル)かどうか
-r:現在のユーザーが読み取り権限(読み取りを持っているかどうかをテストします)
-w:現在のユーザが書き込み権限(書き込み)を有しているかどうかをテストする
)現在のユーザが(eXcuteを実行する権限を持っているかどうかをテストする:-xを

[root@localhost ~]# test -d /etc/sysconfig                                                                                       //判断是否为目录
[root@localhost ~]# echo $?                                                                                                         //输出结果
0                                                                                                                                                  //值为0时条件成立
[root@localhost ~]# test -f /etc/sysconfig                                                                                    //判断是否为文件
[root@localhost ~]# echo $?
1                                                                                                                                                //值为1时条件不成立
[root@localhost ~]# [ -e /etc/sysconfig ]                                                                                   //判断是否有权执行
[root@localhost ~]# echo $?
0                                  

整数値の比較

[ 整数1 操作符 整数2]

一般的なテスト演算子の
-eq:等しい(イコール)
-neは:(等しくない)と等しくない
-gt(より大きい)より大きい
(より小さい)未満:-LT-
以下(小または等しい)に等しい:-le
-ge :に等しい又はより大きい(以上)

[root@localhost ~]# [ $(who|wc -l) -le 6 ]&& echo "有点少!"                                                          //统计当前用户量
有点少!

文字列の比較

格式1: [ 字符串1 = 字符串2 ]
         [ 字符串1 != 字符串2 ]
格式2: [ -z 字符串]

一般的なテスト演算子
=:同じ文字列の内容
!= :!異なる文字列の内容は、反対の意味を表す
文字列が空である:-Z

ロジックテスト

格式1: [ 表达式1 ] 操作符 [ 表达式2 ]
格式2: 命令1 操作符 命令2  ...

一般的なテスト演算子
-aまたは&&:論理AND、 "と"を意味
-oまたは||を:論理OR、 "または"
:いいえロジックありません

[root@localhost ~]# [ -x /etc ] || [ -w /etc ] &&echo "您可执行!"                                                //满足一个条件即可
您可执行!              
 [root@localhost ~]# [ -x /etc ] && [ -w /etc ] &&echo "您可以操作!"                                     //需同时满足两个条件
您可以操作!

if文

シングル分岐構造

if                                                                                                                                                        //条件测试操作
    then                                                                                                                                            //命令序列
fi                                                                                                                                                  //结束命令序列判断

シェルは、条件文のプログラミング

[root@localhost ~]# vim 111.sh
#!/bin/bash
read -p "请输入一个整数:" num
if [ $num -le 60 ]
 then
  echo "数字太小!"
fi
[root@localhost ~]# chmod +x 111.sh
[root@localhost ~]# ./111.sh
请输入一个整数:55
数字太小!

二分岐構造

if                                                                                                                                                        //条件测试操作
    then                                                                                                                                            //命令序列1
    else                                                                                                                                          //命令序列2
fi                                                                                                                                                 //结束命令序列判断

シェルは、条件文のプログラミング

[root@localhost ~]# vim 111.sh
#!/bin/bash
read -p "请输入一个整数:" num
if [ $num -le 60 ]
 then
  echo "数字太小!"
else    
  echo "数字太大!"
fi
[root@localhost ~]# ./111.sh
请输入一个整数:55
数字太小!
[root@localhost ~]# ./111.sh
请输入一个整数:88
数字太大!

多分岐構造

if                                                                                                                                                       //条件测试操作1
    then                                                                                                                                             //命令序列1
elif                                                                                                                                                  //条件测试操作2
    then                                                                                                                                          //命令序列2
else            
                                                                                                                                                  //命令序列3
fi                                                                                                                                              //结束命令序列判断

シェルは、条件文のプログラミング

[root@localhost ~]# vim 111.sh
#!/bin/bash
read -p "请输入您的成绩:" num
if [ $num -le 10 ]
 then
  echo "恭喜您进入决赛!"
   read -p "请输入您的性别(男/女):" sex
    if [ $sex = "男" ]
     then
         echo "恭喜您进入男子组"
  else
         echo "恭喜您进入女子组" 
        fi
else
        echo "很抱歉,您被淘汰了"
fi
[root@localhost ~]# ./111.sh
请输入您的成绩:8
恭喜您进入决赛!
请输入您的性别(男/女):男 
恭喜您进入男子组
[root@localhost ~]# ./111.sh
请输入您的成绩:10
恭喜您进入决赛!
请输入您的性别(男/女):女
恭喜您进入女子组
[root@localhost ~]# ./111.sh
请输入您的成绩:20
很抱歉,您被淘汰了

おすすめ

転載: blog.51cto.com/14449521/2440106