七、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

Linux shell入门基础(七)的更多相关文章

  1. Linux shell入门基础(六)

    六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...

  2. Linux shell入门基础(一)

    Linux shell入门基础(一): 01.增加删除用户: #useradd byf   userdel byf(主目录未删除)  userdel -r byf   该用户的属性:usermod 用 ...

  3. Linux shell入门基础(八)

    八.shell脚本sed&awk 01.sed的使用 流编辑器-Steam Editor #ed /etc/passwd 1,10p …… 1s/root/byf/p(替换root为byf) ...

  4. Linux shell入门基础(五)

    五.bash运算及启动脚本 01.使用bash的命令历史 #history …… #set(显示所有的变量) | grep HIS HISTFILE=/root/.bash_history HISTF ...

  5. Linux shell入门基础(三)

    三.输入输出重定向及管道 01.过滤器   Linux过滤器分三种:     1.过滤器(重定向只对过滤器有作用) #gzip a(将a作为输入源,涉及到输入输出)     2.编辑器     3.交 ...

  6. Linux shell入门基础(二)

    二.shell对文本的操作 01.查看文本的命令 #cat /etc/passwd(并非对文本文件操作) #tail -5 /etc/passwd(查看末尾5行) #tail -f /var/log/ ...

  7. Linux shell入门基础(四)

    四.进程优先级前台后台 01.进程控制 #find /name aaa & #ps aux | grep find #updatedb &  #ps aux | grep update ...

  8. 1)Linux程序设计入门--基础知识

    )Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...

  9. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

随机推荐

  1. Html5游戏框架createJs的简单用法

    声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢!http://www.it165.net/pro/html/201403/11105.html 楼主记忆力不好,最近刚好用了一下create ...

  2. python与编码方式

    1.编码方式: ASCII编码:用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7位存储数据,一共可以表示128个字符. 拓展ASCII编码:用于表示更多的欧洲文字,用8个位存储数据,一共可 ...

  3. CVPR2011录取结果

    CVPR2011论文录取已经结束了,虽然论文都还没有在线公布出来,不过相信http://www.cvpapers.com/会很快有的.这里大体看一下结果统计与分析: At the end of the ...

  4. Gunicorn快速入门

    Gunicorn (独角兽)是一个高效的Python WSGI Server,通常用它来运行 wsgi application(由我们自己编写遵循WSGI application的编写规范) 或者 w ...

  5. 轻松解决Win8.1连接受限或无法连接WiFi问题

    在无线网络连接设置窗口中,找到当前连接的无线网络“WLAN状态”,右击查看“状态”. 在“WLAN状态”窗口中找到“无线属性”. 进入“无线网络属性”窗口,切换到“安全”页面,点击“高级设置”.最重要 ...

  6. angular2 学习笔记 (Pipes)

    Pipe 就是 ng1 的 filter <pre>{{ jsonValue | json }}</pre> 用法看这里就很清楚了 : https://angular.cn/d ...

  7. QMapControl介绍

    QMapControl是Qt开发的基于LGPL协议开源的显示OpenStreetMap(下简称osm)Tile数据和基于wms-server服务的数据,这里做简单介绍并列出相关资源. QMapCont ...

  8. 【号外号外:微软收购 .NET 的开源实现 Xamarin 项目的公司】

    [首页小编:你好,关于博客园对Xamarin的报道确实一笔而过了,希望能不要把这篇文章移除首页呵呵,祝福帅气,聪明,敏捷,睿智的小编] 一个月后,微软开始免费Xamarin了....还要放开SDK.. ...

  9. Spring基础介绍

    Spring属于轻量级还是重量级框架?   这需针对使用Spring的功能而言,比如我们常使用其核心服务整合SSH,这样则为轻量级. 如果使用其大部分服务则可以理解为重量级.   普通JAVA项目环境 ...

  10. 【转】Java集合框架List,Map,Set等全面介绍

    原文网址:http://android.blog.51cto.com/268543/400557 Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含 ...