为了测试文件是否存在,我做:
if [ -f $FILE ];
Run Code Online (Sandbox Code Playgroud)
但是如果$ FILE是一个命名管道,它就不起作用,例如ls -l pipename显示一个带p属性的管道:
prw-r--r-- 1 usr grp 0 Nov 26 02:22 pipename
Run Code Online (Sandbox Code Playgroud)
如何测试命名管道是否存在?
iru*_*var 16
你可以使用-p测试
if [[ -p $pipe ]]
Run Code Online (Sandbox Code Playgroud)
要么
if [ -p "$pipe" ]
Run Code Online (Sandbox Code Playgroud)
小智 7
友好的手册页列出了几个文件测试操作符,包括:
-e file
True if file exists.
Run Code Online (Sandbox Code Playgroud)
和
-f file
True if file exists and is a regular file.
Run Code Online (Sandbox Code Playgroud)
和
-p file
True if file exists and is a named pipe (FIFO).
Run Code Online (Sandbox Code Playgroud)
不要只是一直使用-f; 用你做的意思.