1. shell脚本if语句出现异常
一个bug.png
在shell下编写if语句时,要注意空格符号的存在
在if和[]之间以及[ ]和之中内容之间都要有空格存在
如下
正确的写法
确保空格存在之后,就不会出现问题了
2. 判断输入变量/变量
#!/bin/sh
STRING=$1
if [ -z "$STRING" ]; then
echo "STRING is empty"
fi
if [ -n "$STRING" ]; then
echo "STRING is not empty"
fi
也可以通过来判断:
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