Linux基本功十二:shell脚本流程控制
bash中的流程控制,设计到判断 [ ] , if || && switch-case do-while until for 函数()等等
(1)判断[]
-r -w -b -c -f -x -l -e[exist] -O[owner]
file1 -nt file2 file1比file2新;
file1 -ot file2 file1比file2旧;
-eq = 表示数值相等;[ $a = $b]
-ne != 不等于
-gt 大于[great to] [%a -gt $b ]
-lt 小于[little to]
-ge 大于或等于[great equal]
-le 小于或等于
-z 为空[zero] [-z $a ]
-n 不为空 [ -n $a ]
[ abc ] //这里的abc都是ASCII码,所以都是非零的数字;echo $?; 运行结果为true=0;[ "$USER" = "SHREK"] && echo hello root //判断变量[ -f /usr/sbin/httpd ] && echo yes //判断是否为文件[ -x /etc/passwd ] && echo yes //判断是否是可执行文件[ $a = $b] //变量a/b的值是否相等[ -z $a ] //a是否为空[ $a -gt $b ] //a是否比b大
作用:我们可以进行判断后做其他的操作,检测到某个软件如果没有则进行安装;这种判断在系统的shell脚本中用的十分广泛;
(2)if[] && || 语句的判断
if[] 条件
then 动作
elif[]
then
elif[] then
else
fi
实例:判断一个输入的变量,然后根据相应的变量做相应的操作:
#!/bin/bash
read AAA
if [ $AAA = shrek ]thenecho hello shrekelif [ $AAA = root ]then echo hello rootelif [ $AAA = other ]then echo hello other
elseecho 'get out here!'
fi
(3)shell脚本语句的调试
bash -v ./ky //可见的调试;bash -vx ./ky //可见运行的过程;将每步的执行过程显示出来。
(4)case语句 多重判断
case $AAA in
shrek)
echo hello
;;
root)
echo root
;;
*)
echo other
;;
esac
实例如下;
#!/bin/bash
read AAA
case $AAA inshrek)echo hello shrekecho nice to meet u;;root)echo helloecho i miss u so much;;*)echo get out here;;
esac
(5)while [ $i -lt 100] 条件判断
do
done
实例一:输出小于100的数:
#!/bin/bash
i=0
while [ i -lt 100 ]doi=$[$i+1]echo -n "$i"done
实例二:输入一些字符串
while truedo read AAAif [ "$AAA" = "ddd"]thenbreakfidone
(6)until [$i -gt 100] 条件判断
do
done
实例:输出小于100的数
#!/bin/bash
until [ $i -gt 100]doi=$[$i+1]echo -n "$i "done
unset i
(7)for i in `seq 1 100` 循环判断
do
done
实例一:产生1-100之间的数字
#!/bin/bash
for aa in `seq 1 100`
doecho -n "$aa ";sleep 1
done
实例二:为每个脚本文件加上课执行权限
#!/bin/bash
for aaa in 111 222 333 /etc/profile.d/*.sh
doecho $aaachomd a+x $aaa
done
(8)函数function()
aaa(){bbb=$1*$1return $bbb}
unset aaa 取消一个函数或者一个变量的值;
unset i a b c不会引起当前的shell的冲突;
实例:当输入一个函数名的时候就调用相应的函数完成相应的功能:
#!/bin/bash
start()
{echo service httpd start
}
stop()
{echo service httpd stop
}
jisuan()
{i3=0read -p "please input two number:" i1 i2i3=$[$i1 +$i2]printf "$i1 + $i2 = $i3"
}read name1
case $name1 instart)echo hello start function!start;;stop)echo hello stop functionstop;;jisuan)echo Begin jisuan:jisuan;;*)echo invalid input
esac
Linux基本功十二:shell脚本流程控制相关推荐
- linux脚本求命令行上整数和,《Linux命令行与shell脚本编程大全》 第二十二章 学习札记...
<Linux命令行与shell脚本编程大全> 第二十二章 学习笔记 第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系 ...
- Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结
时间:2017年12月04日星期一 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...
- linux 命令行与shell脚本编程大全
linux 命令行与shell脚本编程大全 第一章 Linux LiveCD就是从cd读取的系统,由于没法将数据写入到cd,所以一旦重启,之前操作过后的一切数据都会丢失. 第二章 第三章 1.man手 ...
- linux运维自动化脚本,linux运维自动化shell脚本小工具
linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...
- Linux命令行与shell脚本编程大全:第2版
<Linux命令行与shell脚本编程大全:第2版> 基本信息 作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍] 译者: 武海峰 丛书名: 图 ...
- Linux_《Linux命令行与shell脚本编程大全》第十章学习总结
时间:2017年08月24日星期四 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...
- 《Linux命令行与Shell脚本编程大全第2版.布卢姆》pdf
下载地址:网盘下载 内容简介 · · · · · · 本书是一本关于Linux 命令行与shell 脚本编程的全面教程.全书分为四部分:第一部分介绍Linuxshell 命令行:第二部分介绍shel ...
- linux svn checkout代码shell脚本
linux svn checkout代码shell脚本 #!/bin/bash echo "欢迎上使用svn账户配置脚本" echo "当前版本V1.0.0" ...
- 【Linux命令行与Shell脚本编程】第五章 理解 Shell 父子关系 后台进程 协程
Linux命令行与Shell脚本编程 第五章 理解 Shell 文章目录 Linux命令行与Shell脚本编程 五,理解 Shell 5.1,shell的类型 5.2,shell的父子关系 5.2.1 ...
最新文章
- 数据权限设计思路_后台权限管理设计思路:三种模型分析
- C++练习 | C++从入门到放弃(基础+进阶C++ github)
- SCN exercise navigation的实现原理
- 搜matlab代码的网站,LTE小区搜索matlab仿真
- JMockit 1.37 示例
- 《哪吒》票房超17亿元 成中国动画电影票房冠军
- Params属性的用法 (beginner)
- 计算机网络七版pdf
- 数据、数据元素、数据项、数据对象
- 运行VS编译的程序提示“由于应用程序配置不正确,应用程序未能启动”的问题
- Centos7环境启动mongod报polkit服务启动失败
- 超启发式算法(hyper heuristic)
- windows电脑防火墙关闭,一键系统防火墙关闭工具推荐
- Java开发必备技巧
- 关于POS操作的一些文章收集链接
- matlab 产生每次都一样的随机数
- “醒醒吧,世界上有技术驱动型公司!”
- QGIS可视化3D DSM
- 新手避坑,这几种类型的入门吉他,初学者千万不要买!【吉他选购指南】
- 阿里云要分拆上市,腾讯云、百度云跟不跟?
热门文章
- 安装python3.7后报错No module named ‘ufw‘
- PC 如何阻止弹出 安全警告框
- SpringBoot实现证书License的授权和验证
- 武汉理工考研复试计算机,2017武汉理工计算机复试
- CUDA安装失败问题visual studio integration failed问题解决方案
- cuda安装失败问题2:install of driver component failed
- 洛谷——P6409 [COCI2008-2009#3] KEMIJA(java实现)
- STM32CubeMX定时器中断
- MogaFX—汇率能充分反映货币压力吗?
- 微信小程序 之 rich-text 长按复制事件