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语句结构的主要内容,如果未能解决你的问题,请参考以下文章