|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!linuxshell有一套本人的流程把持语句,个中包含前提语句(if),轮回语句(for,while),选择语句(case)。上面我将经由过程例子先容下,各个语句利用***。
1、shell前提语句(if用法)if语句布局[if/then/elif/else/fi]
if前提测试语句
then
action
[elif前提
action
else
action
]
fi
假如关于:前提测试语句不是很分明,能够参考:linuxshell逻辑运算符、逻辑表达式详解,也能够参考上面的参数。
1、逻辑运算符
逻辑卷标暗示意义1.关于档案与目次的侦测逻辑卷标!-f经常使用!侦测『档案』是不是存在eg:if[-ffilename]-d经常使用!侦测『目次』是不是存在-b侦测是不是为一个『block档案』-c侦测是不是为一个『character档案』-S侦测是不是为一个『socket标签档案』-L侦测是不是为一个『symboliclink的档案』-e侦测『某个器材』是不是存在!2.关于步伐的逻辑卷标!-G侦测是不是由GID所实行的步伐所具有-O侦测是不是由UID所实行的步伐所具有-p侦测是不是为步伐间传送信息的namepipe或是FIFO(厚道说,这个不太懂!)3.关于档案的属性侦测!-r侦测是不是为可读的属性-w侦测是不是为能够写进的属性-x侦测是不是为可实行的属性-s侦测是不是为『非空缺档案』-u侦测是不是具有『SUID』的属性-g侦测是不是具有『SGID』的属性-k侦测是不是具有『stickybit』的属性4.两个档案之间的判别与对照;比方[testfile1-ntfile2]-nt第一个档案比第二个档案新-ot第一个档案比第二个档案旧-ef第一个档案与第二个档案为统一个档案(link之类的档案)5.逻辑的『和(and)』『或(or)』&&逻辑的AND的意义||逻辑的OR的意义
运算标记代表意义=即是使用于:整型或字符串对照假如在[]中,只能是字符串!=不即是使用于:整型或字符串对照假如在[]中,只能是字符串<小于使用于:整型对照在[]中,不克不及利用暗示字符串>年夜于使用于:整型对照在[]中,不克不及利用暗示字符串-eq即是使用于:整型对照-ne不即是使用于:整型对照-lt小于使用于:整型对照-gt年夜于使用于:整型对照-le小于或即是使用于:整型对照-ge年夜于或即是使用于:整型对照-a两边都建立(and)逻辑表达式Ca逻辑表达式-o双方建立(or)逻辑表达式Co逻辑表达式-z空字符串-n非空字符串
shell下令,能够依照分号支解,也能够依照换行符支解。假如想一行写进多个下令,能够经由过程“;”支解。
如:
[chengmo@centos5~]$a=5;if[[a-gt4]];thenechook;fi;
ok
实例:(test.sh)
#!/bin/sh
scores=40;
if[[$scores-gt90]];then
echo"verygood!";
elif[[$scores-gt80]];then
echo"good!";
elif[[$scores-gt60]];then
echo"pass!";
else
echo"nopass!";
fi;
前提测试有:[[]],[],test这几种,注重:[[]]与变量之间用空格分隔。
2、轮回语句(for,while,until用法):
语法布局:
1.for…in语句
for变量inseq字符串
do
action
done
申明:seq字符串只需用空格字符支解,每次for…in读取时分,就会按按次将读到值,给后面的变量。
实例(testfor.sh):
#!/bin/sh
foriin$(seq10);do
echo$i;
done;
seq10发生123。。。。10空格分开字符串。
2.for((赋值;前提;运算语句))
for((赋值;前提;运算语句))
do
action
done;
实例(testfor2.sh):
#!/bin/sh
for((i=1;i<=10;i++));do
echo$i;
done;
while语句布局
while前提语句
do
action
done;
实例1:
#!/bin/sh
i=10;
while[[$i-gt5]];do
echo$i;
((i--));
done;
运转了局:========================
shtestwhile1.sh
10
9
8
7
6
实例2:(轮回读取文件内容:)
#!/bin/sh
whilereadline;do
echo$line;
done</etc/hosts;
运转了局:===================
shtestwhile2.sh
#Donotremovethefollowingline,orvariousprograms
#thatrequirenetworkfunctionalitywillfail.
127.0.0.1centos5localhost.localdomainlocalhost 语法布局:
until前提
do
action
done
意义是:直到满意前提,就加入。不然实行action.
实例(testuntil.sh):
#!/bin/sh
a=10;
until[[$a-lt0]];do
echo$a;
((a―));
done;
了局:
shtestuntil.sh
10
9
8
7
6
5
4
3
2
1
0 3、shell选择语句(case、select用法)
语法布局
case$argin
pattern|sample)#arginpatternorsample
;;
pattern1)#arginpattern1
;;
*)#default
;;
esac
申明:pattern1是正则表达式,能够用上面字符:
*恣意字串
?恣意字元
[abc]a,b,或c三字元个中之一
[a-n]从a到n的任一字元
|多重选择
实例:
#!/bin/sh
case$1in
start|begin)
echo"startsomething"
;;
stop|end)
echo"stopsomething"
;;
*)
echo"Ignorant"
;;
esac
运转了局:======================
testcase.shstart
startsomething 语法:
select变量nameinseq变量
do
action
done
实例:
#!/bin/sh
selectchin"begin""end""exit"
do
case$chin
"begin")
echo"startsomething"
;;
"end")
echo"stopsomething"
;;
"exit")
echo"exit"
break;
;;
*)
echo"Ignorant"
;;
esac
done;
运转了局:
申明:select是轮回选择,一样平常与case语句利用。 如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们! |
|