shell脚本如何判断非空,出现`[:缺少`]异常`

1. shell脚本if语句出现异常 shell脚本如何判断非空,出现`[:缺少`]异常`
文章图片
一个bug.png 在shell下编写if语句时,要注意空格符号的存在
在if和[]之间以及[ ]和之中内容之间都要有空格存在
如下

shell脚本如何判断非空,出现`[:缺少`]异常`
文章图片
正确的写法 确保空格存在之后,就不会出现问题了
2. 判断输入变量/变量

#!/bin/shSTRING=$1 if [ -z "$STRING" ]; then echo "STRING is empty" fi if [ -n "$STRING" ]; then echo "STRING is not empty" fi

【shell脚本如何判断非空,出现`[:缺少`]异常`】也可以通过来判断:
if [ -n "$pid" ] then # 若不是空,则根据pid删除进程 echo "Stoping application" kill -9 $pid else # 否则,则打印日志 echo "application is not running" fi

3. shell脚本中if中其他变量
-e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为真 -r filename 如果 filename可读,则为真 -w filename 如果 filename可写,则为真 -x filename 如果 filename可执行,则为真 -s filename 如果文件长度不为0,则为真 -h filename 如果文件是软链接,则为真 filename1 -nt filename2 如果 filename1比 filename2新,则为真。 filename1 -ot filename2 如果 filename1比 filename2旧,则为真。

示例代码:
# 若是文件存在,则直接删除对应路径下的文件,就是使用-e文件表达式 if [ -e $APPLICATION_HOME/$APP_NAME.jar ]; then rm -rf $APPLICATION_HOME/$APP_NAME.jar; fi

linux 下shell中if的“-e,-d,-f”是什么意思

    推荐阅读