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. 数据权限设计思路_后台权限管理设计思路:三种模型分析
  2. C++练习 | C++从入门到放弃(基础+进阶C++ github)
  3. SCN exercise navigation的实现原理
  4. 搜matlab代码的网站,LTE小区搜索matlab仿真
  5. JMockit 1.37 示例
  6. 《哪吒》票房超17亿元 成中国动画电影票房冠军
  7. Params属性的用法 (beginner)
  8. 计算机网络七版pdf
  9. 数据、数据元素、数据项、数据对象
  10. 运行VS编译的程序提示“由于应用程序配置不正确,应用程序未能启动”的问题
  11. Centos7环境启动mongod报polkit服务启动失败
  12. 超启发式算法(hyper heuristic)
  13. windows电脑防火墙关闭,一键系统防火墙关闭工具推荐
  14. Java开发必备技巧
  15. 关于POS操作的一些文章收集链接
  16. matlab 产生每次都一样的随机数
  17. “醒醒吧,世界上有技术驱动型公司!”
  18. QGIS可视化3D DSM
  19. 新手避坑,这几种类型的入门吉他,初学者千万不要买!【吉他选购指南】
  20. 阿里云要分拆上市,腾讯云、百度云跟不跟?

热门文章

  1. 安装python3.7后报错No module named ‘ufw‘
  2. PC 如何阻止弹出 安全警告框
  3. SpringBoot实现证书License的授权和验证
  4. 武汉理工考研复试计算机,2017武汉理工计算机复试
  5. CUDA安装失败问题visual studio integration failed问题解决方案
  6. cuda安装失败问题2:install of driver component failed
  7. 洛谷——P6409 [COCI2008-2009#3] KEMIJA(java实现)
  8. STM32CubeMX定时器中断
  9. MogaFX—汇率能充分反映货币压力吗?
  10. 微信小程序 之 rich-text 长按复制事件