shell中判断文件是否存在及文件中是否存在某字符串

╰+攻爆jí腚メ 2022-11-11 05:29 793阅读 0赞

判断文件是否存在:
-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 如果文件是软链接,则为真

例如:
if [ -e filename ]; then (存在)
XXX
else
XXX
fi
if [ ! -e filename ]; then(不存在)
XXX
else
XXX
fi

判断字符串是否存在在文件中:
if cat filename |grep “message” > /dev/null
then
XXX
else(不存在)
XXX
fi

/dev/null用途:
/dev/null 通常被用于丢弃不需要的输出流,或作为用于输入流的空文件,这些操作通常由重定向完成,任何你想丢弃的数据都可以写入其中
丢弃标准输出
在写shell脚本的时候,只想通过命令的结果执行后面的逻辑,而不想命令执行过程中有一大堆中间结果输出,这时候可以把命令执行过程中的输入全部写入 /dev/null

发表评论

表情:
评论列表 (有 0 条评论,793人围观)

还没有评论,来说两句吧...

相关阅读

    相关 shell脚本判断文件是否存在

    有一个需求是判断某一个目录下文件是否存在,如果该文件不存在,则从当前目录拷贝文件到该目录。  由于没有学习写过shell脚本,晚上下班回来搜索后写出了如下的脚本,这里she