七、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. yii框架基本操作

    <?php namespace app\controllers; use yii\web\Controller; use app\models\DemoForm; use app\models\ ...

  2. 使用JAVA客户端对HDFS进行代码编写(五)

    在linux中,在JAVA中编程,耗时的不是代码的编写而是环境的搭建,版本的选择...日了苍天,昨天eclipse突然抽风在linux运行不起来,耗了几个小时,试了各种办法...现在windows环境 ...

  3. winform 对话框控件,打印控件

    1.文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话框(SaveFileDialog) 2.字体对话框(FontDialog) 3.颜 ...

  4. IIS短文件名漏洞修补方法之一改注册表一个注意项

    1)1.png 为漏洞存在没有做任何修复的时候的扫描 修复:2) 修改注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSy ...

  5. Web.config总结

    %windir%/Microsoft.NET/Framework/v2.0.50727/CONFIG目录下machine.config定义了针对当前机器的WinForm程序和asp.net应用程序的配 ...

  6. HttpWebRequest.GetResponse() raises exception when http status code 400 (bad request) is returned

    参考: .Net HttpWebRequest.GetResponse() raises exception when http status code 400 (bad request) is re ...

  7. 理解Java机制最受欢迎的8幅图

    原文链接:  Top 8 Diagrams for Understanding Java 翻译人员: 铁锚 翻译时间: 2013年10月29日 世间总是一图胜过千万言! 下面的8幅图来自于 Progr ...

  8. Eqs (哈希)

    Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 10695   Accepted: 5185 Description Cons ...

  9. 数学:UVAoj 11174 Stand in a Line

    Problem J Stand in a Line Input: Standard Input Output: Standard Output All the people in the bytela ...

  10. 图论(生成树):HDU 5631Rikka with Graph

    Rikka with Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...