流程控制1

命令结束状态

执行成功返回0

执行失败n+128

找不到命令127

没有权限126

$?存储返回值

if条件判断

if-then

if-then-else

完整语法

if条件测试1;then

命令区域1

elif条件测试2;then

命令2

else

命令3

fi

(())等同于let""

条件测试的写法

执行某个命令的结果

ifgrep-q"rm"fn.sh;then

传回某一命令的执行结果的相反值

!命令

if!grep-q"rm"fn.sh;then

注意!后有空格

使用复合命令(())

if((20<30));then

使用[[,]]

if[[str>xyz]];then

[[,]]前后有空格

使用test

iftest"str"\"xyz";then

使用内置命令:[]

if["str"\>"str"];then

[]和test用法相同可以互换

使用-a,-o进行逻辑组合

[-rfilename1-a-xfilename]

-a且,-o或

命令1&&命令2

ifgrep-q"rm"fn.sh&&[$a-lt100];then

命令1真正执行命令2两个为真返回真

命令1||命令2

ifgrep-q"rm"fn.sh||[$a-lt100];then

命令1假执行命令2有一个真返回真

&&和||合用

总结:

[-n${DEBUG:-}]&&set-v||set+v

[[]],test,[]的意思用法相近,[[]]不需要考虑特殊字符

[[]]使用==和!=右边没有""将视为样式

你可能感兴趣的:(linux,shell,流程控制,if)