shell脚本判断设备节点是否存在
2013-08-01 16:43
513 查看
来源:http://hi.baidu.com/leonhanning/item/8f160331a6b214bc623aff7c
今天有个朋友问我如何判断一个设备节点是否存在,觉的很简单的问题,结果破费周折。那个朋友首先发过来一个脚本说不行:
#!/bin/sh
echo "Find usb disk......."
if [ -f /dev/sda1 ]; then
echo "Runing mount > /udisk"
else
echo "Runing WLAN......"
fi
echo "Mount usb disk to /udisk Success"
执行结果就是不能执行 echo "Runing mount > /udisk"
找了半天原因,忽然发现是判断条件有问题啊。
一般的普通文件的判断条件是 -f。但对于设备节点等特殊文件那就不行了。必须使用与文件类型或者说设备类型相对应的判断条件才可以。
* -b file = True if the file exists and is block special file.块设备文件存在
* -c file = True if the file exists and is character special file.字符设备文件存在
* -d file = True if the file exists and is a directory.目录文件存在
* -e file = True if the file exists.文件存在
* -f file = True if the file exists and is a regular file普通文件存在
* -g file = True if the file exists and the set-group-id bit is set.文件存在且设置了组标记位
* -k file = True if the files' "sticky" bit is set.
* -L file = True if the file exists and is a symbolic link.文件存在且是个符号文件
* -p file = True if the file exists and is a named pipe.文件存在且是一个命名管道
* -r file = True if the file exists and is readable.文件存在且是可读的
* -s file = True if the file exists and its size is greater than zero.文件存在
参照上面的说明,我们要判断一个文件存在而不管其类型,那么可以使用 -e,如果要同时检查其类型,那么我们可以使用相对应的判断条件。就拿这个朋友的代码来说,应该使用-e或者-b才是正确的。
这段代码正确的写法应该是:
#!/bin/sh
echo "Find usb disk......."
if [ -b /dev/sda1 ]; then
echo "Runing mount > /udisk"
else
echo "Runing WLAN......"
fi
echo "Mount usb disk to /udisk Success"
相关文章推荐
- shell脚本判断设备节点是否存在
- Linux shell 脚本判断ttyUSB设备节点是否存在
- Linux系统shell脚本判断变量文件目录:权限、是否存在、空值、相等
- 判断文件是否存在的shell脚本代码
- shell 脚本判断文件、文件夹是否存在
- Shell脚本执行hive语句 | hive以日期建立分区表 | linux schedule程序 | sed替换文件字符串 | shell判断hdfs文件目录是否存在
- shell脚本中判断进程是否存在
- Linux系统shell脚本判断变量文件目录:权限、是否存在、空值、相等
- shell 脚本判断某个文件是否存在
- 判断文件是否存在的shell脚本代码
- shell脚本判断文件和目录是否存在
- Shell脚本中,判断Hadoop文件是否存在
- 判断文件是否存在的shell脚本代码
- 判断文件是否存在 shell 脚本
- Linux系统shell脚本判断变量文件目录:权限、是否存在、空值、相等
- shell脚本中判断变量文件目录:权限、是否存在、空值、相等
- shell脚本学习:判断变量文件目录:权限、是否存在、空值、相等
- Shell脚本中判断文件,目录是否存在或者具有权限
- Linux系统shell脚本判断变量文件目录:权限、是否存在、空值、相等
- Shell脚本:判断用户和用户组是否已经存在/创建用户和用户组