星空网 > 软件开发 > 操作系统

Linux shell入门基础(七)

七、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入门基础(七)

关键词:linux

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

个人离岸账户:https://www.goluckyvip.com/tag/31668.html
个人卖家销售计划:https://www.goluckyvip.com/tag/31669.html
跨境圈的暗语:https://www.goluckyvip.com/tag/3167.html
个人能做跨境电商吗:https://www.goluckyvip.com/tag/31673.html
个人能做外贸吗:https://www.goluckyvip.com/tag/31674.html
个人如何跨境电商:https://www.goluckyvip.com/tag/31676.html
石象湖景区门票-石象湖景区门票优惠政策:https://www.vstour.cn/a/411243.html
北京到嵩山自驾游沿途景点 北京距离嵩山有多远:https://www.vstour.cn/a/411244.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流