Shell编程之条件语句

条件测试

文件测试
整数测试
字符串与逻辑测试

if语句

if单分支语句
if双分支语句
if多分支语句
if嵌套语句

test命令

测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值

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

文件测试

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

常用的测试操作符
-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)

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

整数值比较

[ 整数1 操作符 整数2]

常用的测试操作符
-eq:等于(Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Greater or Equal)

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

字符串比较

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

常用的测试操作符
=:字符串内容相同
!=:字符串内容不同,!表示相反的意思
-z:字符串内容为空

逻辑测试

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

常用的测试操作符
-a或&&:逻辑与、“而且”的意思
-o或||: 逻辑或、“或者”的意思
!:逻辑否

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

if语句

单分支结构

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

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

双分支结构

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

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

多分支结构

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

[[email protected] ~]# 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
[[email protected] ~]# ./111.sh
请输入您的成绩:8
恭喜您进入决赛!
请输入您的性别(男/女):男
恭喜您进入男子组
[[email protected] ~]# ./111.sh
请输入您的成绩:10
恭喜您进入决赛!
请输入您的性别(男/女):女
恭喜您进入女子组
[[email protected] ~]# ./111.sh
请输入您的成绩:20
很抱歉,您被淘汰了

原文地址:https://blog.51cto.com/14449521/2440106

时间: 2024-11-08 01:34:28

Shell编程之条件语句的相关文章

Linux Shell编程(1): 条件语句

1.if—then#!/bin/bashif date              如果命令运行成功(退出码为0),则then部分的命令被执行then   echo "good"fi 2.if—then—else#!/bin/bashif hunterthen   echo "good"else    echo "bad"        if语句中退出码非0,则执行else部分语句fi 3.elif#!/bin/bashif hunterthen 

04 shell编程之循环语句

Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l  读取不同的变量值,以逐个执行同一组命令 l  For语句结构 for 变量名 in 取值列表 do 命令序列 done l  for执行原理 for 变量=取值1,do命令序列.取值2,取值3-取值n,分别do.所有取值都执行完之后,done结束循环. l  根据IP地址检查主机状态 Ip地址存放在ip.txt文件中 每行一个 使用ping命令检测各主机的联通性 l  根据

Shell编程 之 条件表达式

1 #!/bin/bash -   2 #===============================================================================  3 #  4 #          FILE: condition_expression_test.sh  5 #   6 #         USAGE: ./condition_expression_test.sh   7 #   8 #   DESCRIPTION:   9 #  10 #

Shell编程之条件判断与流程控制

一.条件判断式语句 1-1.概述 用来判断是与否,客观的而非主观判断,用于进行基本的管理 1-2.按文件类型判断 补充: && 命令1&&命令2 逻辑与(没有数据传递) 当命令1正确执行,则命令2才会执行 当命令1执行不正确,则命令2不会执行 || 命令1||命令2 逻辑或(没有数据传递) 当命令1执行不正确时,命令2才会执行 当命令1正确执行时,命令2不会执行 按文件类型判断 记住蓝色部分 两种判断格式: test –e /root/install.log [-e /ro

Shell中if条件语句的知识和实践

本文主要讲解if条件语句在shell的使用场景和示例 基本大纲: 1.if条件语句的语法 2.if条件语句多种条件表达式语法 3.单分支if条件语句实践 4.if条件语句的深入实践及场景使用 一:if条件语句的语法 1)单分支结构 第一种语法: if    <条件表达式> then 指令 fi 第二中语法: if    <条件表达式>:then 指令 fi 上面的"<条件表达式>"部分可以是test.[].[[]].(())等条件表达式,也可以直接使

Shell语法—— if 条件语句

if 条件语句语法 1.单分支结构 if < 条件表达式 >; then 指令 fi 2.双分支结构 if < 条件表达式 >; then 指令 1 else 指令 2 fi 3.多分支结构 if < 条件表达式 1 >; then 指令 1 else if < 条件表达式 2 >;then 指令 2 elif < 条件表达式 3 >;then 指令 3 else 指令 4 fi if 条件语句多种条件表达式语法 1.test 条件表达式 if

Shell语法—— while 条件语句

while 循环语句 while 循环语句语法格式为: while < 条件表达式 > do 指令 done 有关脚本运行的相关用法 命令 说明 sh file.sh & 把 file.sh 脚本放到后台运行(后台运行脚本的常用方法) ctl+c 停止执行当前脚本或任务 ctl+z 暂停执行当前脚本或任务 bg 把当前脚本或任务放到后台执行 fg 把当前脚本或任务放到前台执行.如果是多个脚本,需加编号,如: fg 2 jobs 查看当前执行的脚本或任务 kill 关闭执行的脚本任务 有

shell编程二条件判断

1.条件判断的表达式: [ 表达式 ] 或者 [[ 表达式 ]] 或者 test 表达式,要注意的是[ ]或者[[ ]]中括号内要与表达式之间用空格隔开,否则会报错. 2.if else fi 条件语句 格式: if 条件 :then 如果条件为真则执行这里的语句 else 条件为假则执行这里语句(else可以省略) fi 3.命令之间的逻辑关系 逻辑与:符号 && 只有两个条件同时为真时,结果为真,如果第一个为真,就继续判断第二个条件,如果第一个条件为假,就结束判断,因为结果已经确定为假

Shell语法—— case 条件语句

case 条件语句语法 case 条件语句语法格式为: case " 变量 " in 值 1) 指令 1 ;; 值 2) 指令 2 ;; \* ) 指令 3 ;; esac 了解即可 给字体加颜色的命令:例:echo -e "\E[1;31m 红颜色 hello world \E[0m" \E 等同于 \033 "[1" 数字 1 表示加粗显示 31m 表示红色字体 "[0m" 表示关闭所有属性 "[1m"