问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

shell判断文件,目录是否存在或者具有权限centos

发布网友 发布时间:2022-04-23 05:04

我来回答

1个回答

热心网友 时间:2022-04-11 20:47

因shell还不是很熟练,所以做此笔记,方便查看。
#!/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
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
帮帮忙写个英语作文80字的 谢谢 80年山东高考总分 总胆红素25.44(正常3.4-22),直接胆红素7.13(正常0-6.8... ...参考值 总胆红素 19.4 0-23.0 umol/L 直接胆红素 6.4 0-8.0 umol/... 蟹爪兰冬天多久浇水 冬季蟹爪兰浇水间隔需长达多久 蟹爪兰冬天什么时候浇水好 蟹爪兰冬天多久浇一次水 端午节一家人吃饭的说说 端午节跟谁一起过 端午节一家人聚在一起吃饭的说说 端午节是家人团聚吗 如果,把电脑的虚拟内存调高,会对电脑有什么坏处吗? Shell 判断FTP上某个路径、文件是否存在 怎样设置虚拟内存?虚拟内存会对电脑有什么影响? 如何在LINUX通过SHELL来检测另一台LINUX机器的一个文件是否存在 虚拟内存的设置会不会对电脑有影响,? shell 判断目录下是否有某文件 电脑虚拟内存设置大了会怎样? 虚拟内存设置大了会怎么样?对电脑有害吗? 改变电脑的虚拟内存会不会有什么影响? 更改电脑的虚拟内存会怎么样? 把虚拟内存调小会有什么影响?怎么调虚拟内存最能发挥电脑性能? 虚拟内存调高了有什么坏处 怎样投简历到QQ邮箱 用QQ邮箱投简历很掉分吗? 用QQ邮箱投递简历,真的很low吗? 怎样使用手机QQ邮箱发送简历,求帮助 花椒熬水有什么功效吗? 艾叶和花椒熬煮有什么功效? 花椒和柚子皮姜片熬水有什么功效 U盘加密软件哪个好?有木有最安全 方便使用的呢? 调下虚拟内存电脑会变卡吗 linux shell程序,如何输入一个文件名判断它是文件夹还是文件? Shell脚本判断是文件还是目录怎么写? 如何在某一个文件夹的所有shell脚本中查看是否存在某一字符串?_百度知 ... 求Bash Shell脚本,判定文件是否存在。 找工作时,应该看重哪些要点? 在找工作时你都遇到过哪些烦恼? 找工作时除了薪资外,你最看重的是什么? 大学生找工作时应需要注意什么? 找工作时,应该怎样去准备? 找工作时,到底签合同好还是不签好? 找工作时候,要把什么放在第一位? 找工作时,该如何包装自己? 在找工作的时候,你认为最先考虑的是什么? 找工作时,怎么判断公司靠不靠谱? 找工作时应注意些什么? 应届生在找工作的时候该注意些什么? 大学毕业找工作时,应该要考虑哪些方面? 支付宝余额宝红包搜索码是怎么来的 支付宝搜711172513为什么会有大额红包?原理是什么?