IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【Linux shell if条件判断、case语句、for循环、while循环、until循环】 -> 正文阅读

[系统运维]【Linux shell if条件判断、case语句、for循环、while循环、until循环】

一、if条件判断

1. 语法格式:
if
then
else
fi
2. 实例:
如果上条命令执行正确,返回commend execute successful
如果上条命令执行错误,返回commend execute failed

[root@localhost script]# vim if.sh
[root@localhost script]# chmod +x if.sh 
[root@localhost script]# cat if.sh 
#!/bin/bash
ls &>> /dev/null
if [ "$?"==0 ]
then
	echo "commend execute successful"
else
	echo "commend execute failed"
fi
[root@localhost script]# ./if.sh 
commend execute successful

#同上,只是把 $? 的引号去掉了:

[root@localhost script]# cat if.sh 
#!/bin/bash
ls &>> /dev/null
if [ $? == 0 ]
then
	echo "commend execute successful"
else
	echo "commend execute failed"
fi
[root@localhost script]# ./if.sh 
commend execute successful
[root@localhost script]# cat ifwrong.sh 
#!/bin/bash
Ls &>> /dev/null
if [ "$?" == 0 ]
then
	echo "commend execute successful"
else
	echo "commend execute failed"
fi
[root@localhost script]# ./ifwrong.sh 
commend execute failed

判断ip是否up

[root@localhost script]# cat ifping.sh 
#!/bin/bash
ping -c 1 $1 &>> /dev/null
if [ $? == 0 ]
then
	echo "$1 is up"
else
	echo "$1 is down"
fi
[root@localhost script]# chmod +x ifping.sh
[root@localhost script]# ./ifping.sh 10.10.10.10
10.10.10.10 is down
[root@localhost script]# ping 10.10.10.10
PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data.

逻辑运算符: && ||

[root@localhost script]# ping -c 1 www.baidu.com &>> /dev/null && echo "up" || echo "down" 

&&:前面执行正确,就不执行后面
||:前面执行错误,才会执行后面(执行第一个正确的)

二、case语句

1. 语法格式:
case var in
var1)
;;
var2)
;;
*) 匹配不到结果,执行该条
;;
2. 实例

[root@localhost script]# vim case.sh
[root@localhost script]# chmod +x case.sh 
[root@localhost script]# cat case.sh 
#!/bin/bash
echo 'Input a number between 1 to 4'
echo 'Your number is:\c'
read aNum
case $aNum in
1) echo 'You select 1'
;;
2) echo 'You select 2'
;;
3) echo 'You select 3'
;;
4) echo 'You select 4'
;;
*) echo 'You do not select a number between 1 to 4'
;;
esac
[root@localhost script]# ./case.sh 
Input a number between 1 to 4
Your number is:\c
2
You select 2
[root@localhost script]# ./case.sh 
Input a number between 1 to 4
Your number is:\c
5
You do not select a number between 1 to 4

注:
read:表示从用户的输入获取变量

三、for循环

1. 语法格式
for var in ##
do
done

2.实例
在这里,总结了 in 后面的两种样式:

in后面样式一:

[root@localhost script]# vim for.sh
[root@localhost script]# cat for.sh 
#!/bin/bash
for i in {1..10}
do
	echo "The vaule is: $i"
done
[root@localhost script]# chmod +x for.sh 
[root@localhost script]# ./for.sh 
The vaule is: 1
The vaule is: 2
The vaule is: 3
The vaule is: 4
The vaule is: 5
The vaule is: 6
The vaule is: 7
The vaule is: 8
The vaule is: 9
The vaule is: 10

in后面样式二:

[root@localhost script]# cp for.sh for2.sh
[root@localhost script]# cat for2.sh 
#!/bin/bash
for i in 1 2 3 4 5
do
	echo "The vaule is: $i"
done
[root@localhost script]# ./for2.sh 
The vaule is: 1
The vaule is: 2
The vaule is: 3
The vaule is: 4
The vaule is: 5

实例三:
使用本机 ping 一下10.163.1.2-10网段的设备,检查哪些设备是 up ,哪些设备 down

[root@localhost script]# cat for2.sh 
#!/bin/bash
for i in {2..10}
do
	ping 10.163.1.$i -c 1 &>> /dev/null && echo "$i up" || echo "$i down" &
done
wait
[root@localhost script]# chmod +x for2.sh 
[root@localhost script]# ./for2.sh 
7 down
8 down
3 down
4 down
5 down
9 down
6 down
2 down
10 down

同理:使用本机 ping 一下10.163.1.*/24网段的设备,检查哪些设备是 up ,哪些设备 down

[root@localhost script]# cat for3.sh 
#!/bin/bash
for i in {1..254}
do
	ping 10.163.1.$i -c 1 &>> /dev/null && echo "$i up" || echo "$i down" &
done
wait

注:
&: 放到最后面,表示放到后台执行,2百多条都放到后台,营造一种并发的效果。前台执行只能一条执行完再执行下一条。
wait: 表示等待上面的命令执行完,再能执行其他命令。放到后台执行时,一定要写wait。

四、while循环

1.语法格式

while [条件] #当while后面的条件成立时,执行do里面的内容
do
done

2.几个“运算符”

ge: greater equal 大于等于
gt: grater than 大于
le: less equal 小于等于
lt: less than 小于
eq: equal 等于

3.实例

当COUNTER变量的值小于 5 时,输出 COUNTER + 1 的值

[root@localhost script]# cat while.sh 
#!/bin/bash
COUNTER=0
while [ "$COUNTER" -lt 5 ]
do
	COUNTER=`expr $COUNTER + 1`
	echo $COUNTER
done
[root@localhost script]# ./while.sh 
1
2
3
4
5

同上,只是将 $COUNTER 的引号去掉了,依然成立:

[root@localhost script]# vim while.sh 
[root@localhost script]# cat while.sh 
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 5 ]
do
	COUNTER=`expr $COUNTER + 1`
	echo $COUNTER
done
[root@localhost script]# chmod +x while.sh 
[root@localhost script]# ./while.sh 
1
2
3
4
5

五、until循环

1.语法格式

until [条件] #当until后面的条件成立时,退出循环
do
done

2.实例

当变量 a 的值不小于 10 时(即>=10时),退出循环

[root@localhost script]# cat until.sh 
#!/bin/bash
a=0
until [ ! $a -lt 10 ]
do
	echo $a
	a=`expr $a + 1`
done
[root@localhost script]# chmod +x until.sh 
[root@localhost script]# ./until.sh 
0
1
2
3
4
5
6
7
8
9

快乐学习,不足之处,欢迎指出,创作不易,转载请 注明出处,谢谢

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 18:06:28  更:2021-12-01 18:08:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:30:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码