首页 > 代码库 > 如何判断某个设备文件是否存在

如何判断某个设备文件是否存在

问:如何在shell里面实现,判断设备文件是否存在,如果不存在则重新判断,直到它存在,如果存在了则往下跑?

假设要判断的设备文件是一个字符设备,例如:/dev/input/event4

while true; do
	if [ ! -c /dev/input/event4 ]; then
		echo "Can not find /dev/input/event4"
		sleep 1
		continue
	else 
		echo "Found /dev/input/event$event_num"
		do something
		break
	fi
done 


另外,附上shell  if 语言常用的参数说明

-a file exists. 
-b file exists and is a block special file. 
-c file exists and is a character special file. 
-d file exists and is a directory. 
-e file exists (just the same as -a). 
-f file exists and is a regular file. 
-g file exists and has its setgid(2) bit set. 
-G file exists and has the same group ID as this process. 
-k file exists and has its sticky bit set. 
-L file exists and is a symbolic link. 
-n string length is not zero. 
-o Named option is set on. 
-O file exists and is owned by the user ID of this process. 
-p file exists and is a first in, first out (FIFO) special file or 
named pipe. 
-r file exists and is readable by the current process. 
-s file exists and has a size greater than zero. 
-S file exists and is a socket. 
-t file descriptor number fildes is open and associated with a 
terminal device. 
-u file exists and has its setuid(2) bit set. 
-w file exists and is writable by the current process. 
-x file exists and is executable by the current process. 
-z string length is zero. 

如何判断某个设备文件是否存在