shell语句结构

Posted lllllLiangjia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell语句结构相关的知识,希望对你有一定的参考价值。

比较语法

字符串比较

  • 是否为空 [ -z 字符串 ]
  • 等于 [ 字符串1 = 字符串2 ]
  • 不等于 [ 字符串1 != 字符串2 ]

方括号、字符和等式之间必须要有一个空格

# 判断变量TT是否为空
liangjiabao@liangjiabaodeMacBook-Air mongodb-macos-x86_64-5.0.3 % [ -z "$TT"]
liangjiabao@liangjiabaodeMacBook-Air mongodb-macos-x86_64-5.0.3 % echo $?
0
# 声明变量x
liangjiabao@liangjiabaodeMacBook-Air mongodb-macos-x86_64-5.0.3 % x="hello"
liangjiabao@liangjiabaodeMacBook-Air mongodb-macos-x86_64-5.0.3 % [ -z "$x" ]
liangjiabao@liangjiabaodeMacBook-Air mongodb-macos-x86_64-5.0.3 % echo $?
1
# 判断当前用户是否是liangjiabao
liangjiabao@liangjiabaodeMacBook-Air mongodb-macos-x86_64-5.0.3 % [ $USER = liangjiabao ] 
liangjiabao@liangjiabaodeMacBook-Air mongodb-macos-x86_64-5.0.3 % echo $?           
0

数字比较

[ 整数值1 比较符 整数值2 ]

操作符

含义

-eq

等于

-ne

不等于

-ge

大于或等于

-le

小于或等于

-gt

大于

-lt

小于

# 查看登陆的用户
liangjiabao@liangjiabaodeMacBook-Air ~ % who
liangjiabao console  Nov 11 10:03 
liangjiabao ttys000  Nov 15 23:32 
liangjiabao ttys001  Dec  1 18:36 

# 查看登陆的用户数量
liangjiabao@liangjiabaodeMacBook-Air ~ % who | wc -l
       3
# 判断登陆的用户数量是否大于2
liangjiabao@liangjiabaodeMacBook-Air ~ % [ $(who | wc -l) -ge 2 ]
liangjiabao@liangjiabaodeMacBook-Air ~ % echo $?
0

文件状态判断

[ 操作符 文件或目录 ]

操作符

含义

-e

判断对象是否存在

-d

判断对象是否为目录

-f

判断对象是否为一般文件

-r

判断对象是否有可读权限

-w

判断对象是否有写权限

-x

对象是否有可执行权限

# 判断该目录是否存在
liangjiabao@liangjiabaodeMacBook-Air ~ % [ -e /etc/ ]
liangjiabao@liangjiabaodeMacBook-Air ~ % echo $?
0

if语句

if单分支判断

if 条件测试

        then 命令序列

fi

if双分支判断

if 条件测试

then

        命令序列

else

        命令序列

fi

if多分支判断

if 条件测试

then

        命令序列

elif

        命令序列

else

        命令序列

fi

for语句

for 变量 in 值变量

do

        命令序列

done

------------------

for ((初值; 条件; 步长))

do

        命令序列

done

while语句

while 条件测试

do

        命令序列

done

写死循环使用while :

case语句

case 变量 in

模式1)

        命令序列1;;

模式2)

        命令序列2;;

*)

        默认命令序列

esac

函数语法

function 函数名

        命令序列

--------------

函数名()

        命令序列

以上是关于shell语句结构的主要内容,如果未能解决你的问题,请参考以下文章

if语句 条件测试 shell编程之条件语句

shell脚本结构化语句

shell语句结构

shell语句结构

shell语句结构

shell 参数与逻辑结构语句