shell编程之条件语句

发布时间:2024年01月24日

一 test条件测试

格式1:test ?条件表达式
格式2:[ ?条件表达式 ?]


注意? [ ]空格,否则会失败
测试 是否成功使用 $? ?返回值
[ 操作符 文件或目录 ]
help test

操作符:
-d:测试是否为目录(Directory)

-a:测试目录或文件是否存在(Exist) ??

-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)

-L: 测试是否为软连接文件

①-e:测试目录或文件是否存在(Exist)

②-f:测试是否为文件(File)?

?③-x:测试当前用户是否有权限执行(eXcute)

?

二 比较整数数值
?

-eq:第一个数等于(Equal)第二个数

-ne:第一个数不等于(Not Equal)第二个数

-gt:第一个数大于(Greater Than)第二个数

-lt:第一个数小于(Lesser Than)第二个数

-le:第一个数小于或等于(Lesser or Equal)第二个数

-ge:第一个数大于或等于(Greater or Equal)第二个数

三 字符串比较

  • =:字符串内容相同

  • !=:字符串内容不同,! 号表示相反的意思

  • -z:字符串内容为空

  • -n: 字符是否存在

四 实验:逻辑测试(短路运算?)

常见条件

  • -a或&&:逻辑与,“而且”的意思全真才为真

  • -o或||:逻辑或,“或者”的意思一真即为真

  • !:逻辑否

操作符:

&&或-a? 表示且的意思,前面表达式或命令1为真才会执行操作符后面的表达式2或命令2。一假则为假。

||或-o? ?表示或的意思,前面表达式1或命令1为真则整个表达式为真,前面表达式为假或命令为假才会执行后面的表达式2或命令2?。一真则为真。

?五 if 语句

单分支

结构:

if 判断条件;then ?

条件为真的分支代码

fi

2 双分支

结构:

if 判断条件;then ?

条件为真的分支代码

else
?条件为假的分支代码

fi

3 多分支语句

if 判断条件1
then
?条件1为真的分支代码

elif 判断条件2
then
?条件2为真的分支代码

elif 判断条件3;

then
?条件3为真的分支代码

...
else
?以上条件都为假的分支代码 ?托底

fi

六 case语句


case支持glob风格的通配符:
* 任意长度任意字符
? 任意单个字符
[0-9] 指定范围内的任意单个字符
| ? 或者,如: a|b

格式:

read -p ? ?...... ? ? ?i

case $i in
PAT1)
?分支1
?;;
PAT2)
?分支2
?;;
...
*)
?默认分支
?;;

esac

七 脚本

1.字符识别输入数字or字母 case
#!/bin/bash

read -p "请在此处输入:" key


case $key in

[0-9])

echo "你输入的是 数字"

;;

[a-z]|[A-Z])

echo "你输入的是 字母"

;;

*)

echo "输入有误"

bash $0

esac
2.分数等级分类

#!/bin/bash
#积分分类
read -p "请输入积分(0-100):" JF
if [ $JF -ge 90 ];then
  echo '优'
elif [ $JF -lt 90 ];then
 echo '差'
fi

3测试机器是否在线? for、if


#!/bin/bash
for i in {1..254}
do
{
ping  -c2  -w2  192.168.91.$i &>/dev/null
if  [ $? -eq 0 ]
then
echo  host $i is online
echo "$i" >> host.txt
else
echo "host $i is offline"
fi
}&
done
wait

文章来源:https://blog.csdn.net/MCB134/article/details/135825878
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。