教你怎么使用shell判断文件是否存在
很多时候我们在做运维的时候,我们需要做一些自动化,这时我们就需要写一些shell脚本,既然要用到shell脚本,就免不了文件操作。接下来我就教你怎么判断文件是否存在。
操作方法
- 01
首先我们要touch一个文件。
- 02
打开它,输入如下 #!/bin/bash if [ -z $1 ]; then #如果没有输入参数,也就是第一个参数的字符串长度为0 : #空语句 else if [ -e $1 ]; then #如果文件存在的话 if [ -f $1 ]; then #如果文件是个普通文件? echo $1" is a text file." elif [ -d $1 ]; then #如果文件是个目录文件? echo $1" is a directory." elif [ -c $1 ]; then #如果文件是个字符设备? echo $1" is a char device." elif [ -b $1 ]; then #如果文件是个块设备? echo $1" is a block device." else #否则 echo $1" is unknow file." fi fi
- 03
wq保存起来,然后测试它。
- 04
第一步肯定是要测试参数的问题,如果没参数会怎么样?
- 05
参数没问题,我们再随便输入一个不存在的文件试试?
- 06
这完全符合unix哲学,一个程序就该简易,不说更多的废话。很显然,提醒文件不存在是没有必要的,并且缺少参数也是不需要的,我们只要结果,对于unix哲学来说,是这样的。 接下来我们要测试我们的重点,我们的文件。首先从普通文件开始测试,那就测试自己吧。
- 07
然后测试我们的目录?
- 08
测试我们的字符设备?但是我们不知道机子上有哪些字符设备怎么办? 那很简单,我们只要ls -l /dev | more 看一下就行,按enter键往下移。 只需要看前面的第一个字符是什么就OK c代表字符设备,b代表块设备 那我们等会就测试/dev/adsp的字符设备和/dev/hdc的块设备
- 09
看到了,我们先测试字符设备。 按q退出more 来看看结果
- 10
然后再看看我们的块设备?