附录
shell 中的 if…else
基本语法如下:
if [ 条件1 ]; then
# 条件1为真时执行的代码
elif [ 条件2 ]; then
# 条件2为真时执行的代码
else
# 条件为假时执行的代码
fi
其中:
[ 条件 ]
:[ ]
是 Shell 中的条件测试语法,注意括号内两侧需要有空格 ❗️then
:表示条件成立时执行的代码块开始。else
:表示条件不成立时执行的代码块开始。fi
:表示if
语句的结束。
常用的条件测试符号有哪些?
1. 数值比较
-eq:等于(equal)
-ne:不等于(not equal)
-gt:大于(greater than)
-lt:小于(less than)
-ge:大于等于(greater than or equal)
-le:小于等于(less than or equal)
2. 字符串比较
= :字符串相等
!=:字符串不相等
-z:字符串长度为 0(空字符串)
-n:字符串长度不为 0
3. 文件测试
-f:文件存在且是普通文件
-d:文件是否存在且为目录
-e:文件或目录是否存在
-r:文件是否存在且可读
-w:文件是否存在且可写
-x:文件是否存在且可执行
-s:文件是否存在且大小大于 0
还有常用的逻辑运算符,如下:
逻辑运算符
- &&:逻辑与(AND)
- ||:逻辑或(OR)
- ! :逻辑非(NOT)
比如我们要判断一个文件是否存在,如下:
|
|
shell 怎么获取当前目录并赋值给变量
|
|
其中:
pwd
会返回当前工作目录的绝对路径,如果当前目录是/home/user/projects
,pwd
会输出/home/user/projects
;$(pwd)
会将 pwd 命令的输出结果捕获,并赋值给变量。
如果只想获取当前目录的名称(而不是完整路径),可以使用 basename
命令:
|
|