复制 代码 代码 如下: #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的-x 参数 判断 $myPath 是否 存在 并且 是否 具有 可执行 权限 if [ ! -x "$myPath"]; then mkdir "$myPath" fi #这里的-d 参数 判断 $myPath 是否 存
复制代码 代码如下:
#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"
#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi
#这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
#这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
#其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi
#两个变量判断是否相等
if [ "$var1" = "$var2" ]; then
echo ‘$var1 eq $var2′
else
echo ‘$var1 not eq $var2′
fi
shell
判断语句
流程控制 "if" 表达式 如果条件为真则执行then后面的部分: if ….; then
….
elif ….; then
….
else
….
fi
大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、
判断文件是否存在及
是否可读等等… 通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
[ -f "somefile" ] :
判断是否是一个
文件 [ -x "/bin/ls" ] :
判断/bin/ls
是否存在并有可执行
权限 [ -n "$var" ] :
判断$var变量
是否有值
[ "$a" = "$b" ] :
判断$a和$b
是否相等 -r file 用户可读为真
-w file 用户可写为真
-x file 用户可执行为真
-f file
文件为正规
文件为真
-d file
文件为
目录为真
-c file
文件为字符特殊
文件为真
-b file
文件为块特殊
文件为真
-s file
文件大小非0时为真
-t file 当
文件描述符(默认为1)指定的设备为终端时为真
#########################################################
含条件选择的shell脚本
对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件
判断了。shell脚本编程支持此类运算,
包括比较运算、
判断文件是否存在等。基本的if条件命令选项有: -eq ―比较两个参数
是否相等(例如,if [ 2 ?eq 5 ])
-ne ―比较两个参数
是否不相等
-lt ―参数1
是否小于参数2
-le ―参数1
是否小于等于参数2
-gt ―参数1
是否大于参数2
-ge ―参数1
是否大于等于参数2
-f ― 检查某
文件是否存在(例如,if [ -f "filename" ])
-d ― 检查
目录是否存在 几 乎所有的
判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一
文件之前检查它
是否存在。 ##################################################################
判断文件是否存在 复制代码 代码如下:
#!/bin/sh
today=`date -d yesterday +%y%m%d`
file="apache_$today.tar.gz"
cd /home/chenshuo/shell
if [ -f "$file" ];then
echo "OK"
else
echo "error $file" >error.log
mail -s "fail backup from test" linuxcy@126.com fi
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn