七、bash脚本中的流程控制
  条件判断控制
  -[]([]中的表达式是否为真)  &&(前边的结果是true的时候执行后边的命令)   ||(前边的结果是false的时候执行后边的命令)
  -if
  -case
  循环控制
  -while
  -utile
  -for
  -break
  -continue
#[ abc ]
#echo $?
0(表示true)
#[ ]
#echo $?
1(表示false)
#["$USER" = "byf" ]('$?*'的意义是去掉特殊意义的字符,“ ”双引号只是去掉空格的特殊意义)
#echo $?
1
#[$USER = root ]
#echo $?
0
#[$USER = root ] && echo hello root
hello root
#[-x /etc/] && echo hello
hello
#man bash中输入/-w即可查找,n查找下一个
#-r(读) -w(写) -x(可执行) -f(普通文件) -d(是否有目录) -L (链接)-b(block的适配文件) -c
#[-b /dev/hda ]&& echo you have a ide device
#[-b /dev/sda ]&& echo you have a scsi device
you have a scsi device
#[-f /usr/sbin/httpd] && echo please install httpt again
please install httpd again
#vi b
#!/bin/bash
read AAA
if [ $AAA = byf ]
then
echo hello byf
elif [ $AAA = root ] 
then
echo hello root
else  
echo 'get out here'
fi
wq
#./b
#bash -v ./b(看执行到那个命令)
#bash -vx ./b(查看出错命令行,进行调试,可查看每个变量的值)
C和bash调试的差别
C是纯二进制的文件,调试需要相应的开发环境设置断点
bash中是文本的文件,可直接检测到出错的地方
#
#!/bin/bash
read AAA
case $(取出变量的值)AAA in
byf )
echo hello byf
echo nice to meet you
;;(表示结束)
root )
echo hello root
echo i miss you so much
;;
* )
echo get out here
;;
esac
:wq
#bash ./c
byf
-eq = 相同
-ne !=不同
-gt >
-lt <
-ge >=
-le <=
-z 为空
#!/bin/bash
AAA="`pgrep httpd`"
[-z "$AAA"("3186 3188 3189 3190 3191 3192 3193 3194 3195
"去掉变量中的空格)]&& echo httpd 'httpd is not running!' && exit
for i in $AAA
do
kill -9 $i
done
echo httpd is killed
wq
#chmod a+x d
#./d
#./d
#!/bin/bash
for aaa in 111 222 333 /etc/profile.d/*.h
do
echo $aaa (chmod a+ x $aaa批量操作)
done
#chmod a+x e
#./e
111
222
333
/etc/profile.d/colorls.sh /etc/profile.d/glib2.sh /etc/profile.d/gnome-ssh-askpass.sh /etc/profile.d/kde.sh /etc/profile.d/lang.sh /etc/profile.d/less.sh /etc/profile.d/qcd.sh /etc/profile.d/qt.sh /etc/profile.d/udisks-bash-completion.sh /etc/profile.d/vim.sh /etc/profile.d/which2.sh
#seq 1 100
1
2
……
100
#!/bin/bash
for aaa in `seq 1 100`
do
echo $aaa; sleep 1(分号不加回车,不加分号加换行)
(echo -n "$aaa"
 sleep 1)
done
#
#!/bin/bash
iii=0
while [ $iii -lt 100 ]
do
i=$[$iiii+1]
echo -n "$iii "
done
#
#!/bin/bash
iii=0
until [$iii -gt 100]
do
iii=$[$iii+1]
echo -n "$iii "
done
unset iii
:wq
#
#!/bin/bash
while
true 
do
read AAA
if ["$AAA" = "ddd"]
then
break
fi
done

最新文章

  1. Web Worker javascript多线程编程(一)
  2. TesseractOCR
  3. 简单粗爆的解决同时布CRM引起的死锁问题
  4. linux权限补充:rwt rwT rws rwS 特殊权限
  5. ORACLE查看并修改session和连接最大数
  6. Node.SelectNodes
  7. C#实现图标批量下载
  8. Convert Sorted Array to Binary Search Tree
  9. 传统IT大佬们,路在何方?
  10. Gvim使用心得--设置篇[转]
  11. Python爬虫(十一)_案例:使用正则表达式的爬虫
  12. 【ASP.NET Core】处理异常(下篇)
  13. Python3玩转儿 机器学习(4)
  14. mybatis源码分析(方法调用过程)
  15. 常用CSS技术收藏
  16. Session和Cookie,Django的自动登录机制
  17. OAF_OAF控件系列9 - Description Flexfiled描述性弹性域的实现(案例)
  18. lucene 简介和实践 分享
  19. 前端chrome调试技巧
  20. [BZOJ1391]解题报告|网络流的又一类建图&amp;Dinic的若干优化

热门文章

  1. yii 验证用户名是否存在 array(&quot;name&quot;,&quot;unique&quot;,&#39;message&#39;=&gt;&#39;用户名已经存在&#39;),
  2. 小A项目为什么加班
  3. protocol(协议) 和 delegate(委托)也叫(代理)---辨析
  4. 转:jQuery常用插件
  5. 关于float与double
  6. BZOJ 1032 祖玛
  7. Oracle开始从Java运行时中移除JAR包
  8. Cortex-M0系统滴答定时器Systick详解
  9. Firebase能改变什么(对SaaS,BaaS,PaaS,IaaS的解释比较清楚)
  10. backbone初次使用及hello world