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脚本流程控制相关推荐

  1. linux脚本求命令行上整数和,《Linux命令行与shell脚本编程大全》 第二十二章 学习札记...

    <Linux命令行与shell脚本编程大全> 第二十二章 学习笔记 第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系 ...

  2. Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结

    时间:2017年12月04日星期一 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  3. linux 命令行与shell脚本编程大全

    linux 命令行与shell脚本编程大全 第一章 Linux LiveCD就是从cd读取的系统,由于没法将数据写入到cd,所以一旦重启,之前操作过后的一切数据都会丢失. 第二章 第三章 1.man手 ...

  4. linux运维自动化脚本,linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

  5. Linux命令行与shell脚本编程大全:第2版

    <Linux命令行与shell脚本编程大全:第2版> 基本信息 作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍] 译者: 武海峰 丛书名: 图 ...

  6. Linux_《Linux命令行与shell脚本编程大全》第十章学习总结

    时间:2017年08月24日星期四 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  7. 《Linux命令行与Shell脚本编程大全第2版.布卢姆》pdf

    下载地址:网盘下载 内容简介  · · · · · · 本书是一本关于Linux 命令行与shell 脚本编程的全面教程.全书分为四部分:第一部分介绍Linuxshell 命令行:第二部分介绍shel ...

  8. linux svn checkout代码shell脚本

    linux svn checkout代码shell脚本 #!/bin/bash echo "欢迎上使用svn账户配置脚本" echo "当前版本V1.0.0" ...

  9. 【Linux命令行与Shell脚本编程】第五章 理解 Shell 父子关系 后台进程 协程

    Linux命令行与Shell脚本编程 第五章 理解 Shell 文章目录 Linux命令行与Shell脚本编程 五,理解 Shell 5.1,shell的类型 5.2,shell的父子关系 5.2.1 ...

最新文章

  1. MySQL之帮助的使用
  2. 卷积神经网络的实际意义
  3. python入门视频教程推荐-Python入门视频看哪个好?适合初学者的教学视频推荐
  4. python聚类分析如何确定分类个数_Python数据挖掘—聚类—KMeans划分法
  5. java collections读书笔记(4) stack
  6. 川大和西南交大计算机考研难易度,2020考研:百所211院校报考难易度分析
  7. mysql 读写引擎_揭秘MySQL存储引擎spider
  8. FPGA原语类型介绍
  9. 基于JAVA+SpringMVC+MYSQL的网上订餐系统
  10. Cannot open the disk 'D:\win7-ie8\Windows 7 x64.vmdk' or one of the snapshot
  11. 更改yum源配置后执行报错[Errno 14] PYCURL ERROR 22 - “The requested URL returned error: 404 Not Found”
  12. 【NOIP2001】【Luogu1025】数的划分(可行性剪枝,上下界剪枝)
  13. SI 9000 及阻抗匹配学习笔记(二)
  14. 伺服驱动系统的电磁干扰问题
  15. MongoDB 下载和安装
  16. PROFINET GSDML文件关键字和博图硬件目录关系
  17. 广告条幅制作html,一种广告设计用的条幅收卷装置的制作方法
  18. js超简单实现图片旋转
  19. 原型软件--Balsamiq Mockups
  20. 常用的一些javascript小技巧(收藏http://www.car371.com/article.asp?id=13)

热门文章

  1. 什么是虚拟主机?云服务器的优劣势有哪些?
  2. Vue 路由 导航守卫(全局守卫、路由独享守卫、组件内守卫)
  3. 赤峰中考计算机考试软件,2018赤峰中考信息技术与实验操作实施细则公布
  4. can接口卡、can卡、usbcan在金龙大巴车BMS上的作用
  5. java求1000以内的完数及分析
  6. 游戏出现GetThreadContext failed报错 Unity开发
  7. WinFax传真软件的使用帮助
  8. 在线播放服务器配置,服务器搭建配置视频教程
  9. pgsql获取上一个月,上一个月第一天,上一个月最后一天
  10. 遗传算法原理以及MATLAB实现