七、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. php流行笔试题及答案

    1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中:而链接到当前页面的URL记录在预定义变量(2)中. 答:echo $_SERVER['PHP_SELF']; echo ...

  2. HDU 5166(缺失数查找输出)

    HDU 5166 Time Limit:1000MS  Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Description T ...

  3. centos下Elasticsearch数据迁移与备份

    ########### ### 共享创建es官方网站就一句话 ########   1.下载 文件共享 .. rpm -i http://mirror.symnds.com/distributions ...

  4. Task schedule

    hdu4907:http://acm.hdu.edu.cn/showproblem.php?pid=4907 题意:中文题. 题解:这一道水题,自己调了很久,并且没有注意到序列可能是乱序的,wa了好几 ...

  5. codeforces C. Devu and Partitioning of the Array

    题意:给你n个数,然后分成k部分,每一个部分的和为偶数的有p个,奇数的有k-p个,如果可以划分,输出其中的一种,不可以输出NO; 思路:先输出k-p-1个奇数,再输出p-1个偶数,剩余的在进行构造.  ...

  6. angularjs学习总结(~~很详细的教程)

    1 前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,紧跟时代潮流,学习掌握新知识自然是不敢怠慢. AngularJS是google在维护,其在国外已经十分火热,可是国内的 ...

  7. mysql存储过程写法—动态参数运用

    --删除 双击代码全选 1 drop procedure if exists up_common_select --创建 双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  8. 14.5.3 Locks Set by Different SQL Statements in InnoDB

    14.5.3 Locks Set by Different SQL Statements in InnoDB 通过不同的SQL语句设置的锁 在InnoDB中 一个锁定读, 一个UPDATE 或者一个D ...

  9. 【HDOJ】2579 Dating with girls(2)

    简单BFS. /* 2579 */ #include <iostream> #include <queue> #include <cstdio> #include ...

  10. Javascript面向对象编程(二):构造函数的继承 by 阮一峰

    今天要介绍的是,对象之间的"继承"的五种方法. 比如,现在有一个"动物"对象的构造函数. function Animal(){ this.species = & ...