admin 发表于 2024-8-19 18:01:59

SHELL编程必备-If条件语句实战

Linux Shell编程中,if、for、while、case等条件流程控制语句用的非常多,熟练掌握以上流程控制语句及语法的实验,对编写Shel脚本有非常大的益处。

If条件判断语句,通常以if开头,fi结尾。也可加入else或者elif进行多条件的判断,主要有如下三种表达式结构:

1)If表达式单表达式如下:
if(表达式)
语句1
fi</font>
2)If表达式双表达式如下:
if(表达式)
语句1
else
语句2
fi</font>
3)If表达式多表达式如下:
if(表达式x)
语句1
else
if(表达式y)
语句2
else
    语句3
fi
fi</font>
4)If语句Shell脚本编程案例如下:
(1)比较两个整数大小。
#!/bin/bash
#By author jfedu.net 2024
NUM=100
if(( $NUM > 4 )) ;then
echo “TheNum$NUMmorethan 4.”
else
echo “TheNum$NUMless   than 4.”
fi</font>
(2)判断系统目录是否存在。
#!/bin/bash
#judge DIR or Files
#By author jfedu.net 2022
if[!-d/data/20240515-a!-d/tmp/2024/];then
mkdir-p/data/20240515
fi</font>
5)If常见判断逻辑运算符详解:
-f                                                判断文件是否存在 eg: if [ -f filename ];
-d                                                 判断目录是否存在 eg: if [ -d dir   ];
-eq                                                等于,应用于整型比较 equal;
-ne                                                不等于,应用于整型比较 not equal;
-lt                                                 小于,应用于整型比较 letter;
-gt                                                大于,应用于整型比较 greater;
-le                                                小于或等于,应用于整型比较;
-ge                                             大于或等于,应用于整型比较;
-a                                                 双方都成立(and) 逻辑表达式 –a 逻辑表达式;
-o                                                 单方成立(or) 逻辑表达式 –o 逻辑表达式;
-z                                                 空字符串;
||                                                 单方成立;
&&                                             双方都成立表达式。</font>
(3)if多个条件测试分数判断。
#!/bin/bash
#By author jfedu.net 2022
scores=$1
if[[ $scores -eq 100 ]]; then
    echo "very good!";
elif [[ $scores -gt 85 ]]; then
    echo "good!";
elif [[ $scores -gt 60 ]]; then
    echo "pass!";
elif [[ $scores -lt 60 ]]; then
    echo "no pass!"
fi</font>

6)Shell编程中,尤其是使用if语句时,经常会使用()、(())、[]、[[]]、{}等括号,如下为几种括号简单区别对比:()
用于多个命令组、命令替换、初始化数组,多用于SHELL命令组,例如:JF=(jf1 jf2 jf3),其中括号左右不保留空格;
(( ))
整数扩展、运算符、重定义变量值,算术运算比较,例如:((i++))、((i<=100)),其中括号左右不保留空格;
[ ]
bash内部命令,[ ]与test是等同的,正则字符范围、引用数组元素编号,不支持+-*/数学运算符,逻辑测试使用-a、-o,通常用于字符串比较、整数比较以及数组索引,其中括号左右要保留空格;
[[ ]]
bash程序语言的关键字,不是一个命令,[[ ]]结构比[ ]结构更加通用,不支持+-*/数学运算符,逻辑测试使用&&、||,通常用于字符串比较、逻辑运算符等,其中括号左右要保留空格;
{}
主要用于命令集合或者范围,例如mkdir-p/data/201{7,8}/,其中括号左右不保留空格。</font>

7)Shell编程中,不管是使用变量、编程时,经常会使用$、\、单引号、双引号、反引号等符号,如下为几种符号简单区别对比:

美元符号$,主要是用于引用SHELL编程中变量,例如定义变量JF=www.jfedu.net,引用值,需要用$JF;
\反斜杠,主要是用于对特定的字符实现转义,保留原有意义,例如echo “\$JF”结果会打印$JF,而不会打印www.jfedu.net;
单引号 (' '),单引号又称为强引,不具有变量置换的功能,所有的任意字符还原为字面意义,实现屏蔽Shell元字符的功能;
双引号(" ") ,双引号又称为弱引,具有变量置换的功能,保留$(使用变量前导符), \(转义符), `(反向引号)元字符的功能;
反向引号(` `),反引号,位于键盘Tab键上面一行的键,用作命令替换(相当于$(...))。</font>

admin 发表于 2024-8-19 18:04:52


其实我一直觉得楼主的品味不错!呵呵!京峰教育Linux论坛太棒了!

admin 发表于 2024-8-19 22:50:41


既然你诚信诚意的推荐了,那我就勉为其难的看看吧!京峰教育Linux论坛不走平凡路。

admin 发表于 2024-8-20 16:45:02


楼主,我太崇拜你了!我想我是一天也不能离开京峰教育Linux论坛。
页: [1]
查看完整版本: SHELL编程必备-If条件语句实战