shell判断文件,目录是否存在或者具有权限 (转载)
转自:http://cqfish.blog.51cto.com/622299/187188
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脚本一般能胜任。但在执行一些决策任务时,就需要包含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命令选项在执行某一文件之前检查它是否存在。 ################################################################## 判断文件是否存在
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" test@test.com <error.log
fi
转载于:https://www.cnblogs.com/lance-ehf/p/4171594.html
shell判断文件,目录是否存在或者具有权限 (转载)相关推荐
- Shell中判断文件,目录是否存在
一. 具体每个选项对应的判断内容: -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filena ...
- shell判断文件是否存在[转]
原文出处: http://canofy.iteye.com/blog/252289 shell判断文件,目录是否存在或者具有权限#!/bin/shmyPath="/var/log/httpd ...
- shell——判断文件是否存在
初次使用Markdown编辑器来编写博客,希望有不一样的体会 本文通过网络文章来体会下shell中对文件的操作 1.这个编辑器和wiki有点像呢 2.Shell是一个很好用的脚本 以下为shell下的 ...
- Linux shell判断文件或者目录是否存在
-e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L fil ...
- linux shell判断文件、目录是否存在并移动到指定位置
1.需求 移动某个文件夹下面的所有图片到id后两位的文件夹下面,如果文件夹不存在则新建文件夹 图片样式:211435.jpg,将其移动到35文件夹 2.代码 file=`ls /home/photo` ...
- Linux shell 判断文件或目录是否存在
插播下 result=$[a + b] 等价与 result=`expr $a + $b ` #文件夹不存在则创建 if [ ! -d "/home/xxx/data/" ] th ...
- Shell 判断文件或文件夹是否存在(不存在则创建)
目录 1. 文件夹不存在创建文件夹 2. 判断文件夹是否存在 3. 判断文件是否存在 4. 常用的文件比较符 1. 文件夹不存在创建文件夹 if [ ! -d "/data/" ] ...
- linux shell 判断文件是否存在
判断文件是否存在 if [ -f "/data/filename" ];thenecho "文件存在" elseecho "文件不存在" f ...
- C 判断文件是否存在及读写执行权限
access():判断是否具有存取文件的权限 相关函数 stat,open,chmod,chown,setuid,setgid 表头文件 #include<unistd.h> 定义函数 i ...
最新文章
- 模板 - O(n)预处理,O(1)查询gcd
- mysql 中文乱码
- opencv 图像旋转_用Dlib和OpenCV还能做什么?这个开源项目实现了驾驶员疲劳检测...
- iOS连接linux服务器用什么,iOS实现通过SSH2协议链接Linux服务器,并执行相关指令...
- 3dmax卸载工具_3dmax软件如何彻底卸载?
- 二叉树的层序遍历和前中后序遍历代码 迭代/递归
- 嵌入式开发环境ARM+linux的搭建
- [洛谷2397]yyy loves Maths VI
- python解决高并发的方法
- Delphi 10.3 Rio实现FMX应用APP增加Android“应用程序快捷方式”
- 时间序列分析 | 相似性度量基本方法
- 51单片机74HC595级联测试proteus
- [转载]Cairo 图形指南[转载]
- 军队武器java代码
- 苹果HomeKit与谷歌 Home对比:谁是最佳选择?
- R安装nCov2019包报错:Failed to install 'unknown package' from GitHub: schannel: failed to receive handsh
- cesium实现四色预警(仿echarts)(cesium篇.50)
- QGIS教程-4:文本数据的加载
- ”核高基”重大软件专项向微软COM技术敞开大门
- 2018结构、流体、热分析、多物理场耦合、电磁仿真计算特点与硬件配置方案分析
热门文章
- 带属性的向前声明:warning: type attributes are honored only at type definition
- linux c 获取文件数量
- OpenCV实现图像翻转
- L2-013. 红色警报-PAT团体程序设计天梯赛GPLT(图的连通分量个数统计)
- 如何删掉oracle服务,oracle留下的服务如何删除啊
- vscode 注释快捷键_koroFileHeader:一个用于生成文件头部注释和函数注释的插件
- Python性能测试方法
- linux 常用命令系列—cp 复制文件与文件夹
- San 3.7.3 发布,百度开源的 MVVM 组件框架
- 1.1 学习之初;1.2 约定;1.3 认识Linux;1.4 创建虚拟机;1.5安装centos7