Reputation: 30502
In order to test if a file exists I do:
if [ -f $FILE ];
but it doesn't work if $FILE is a named pipe,
e.g. ls -l pipename
shows a pipe with p attribute:
prw-r--r-- 1 usr grp 0 Nov 26 02:22 pipename
How to test if a named pipe exists?
Upvotes: 24
Views: 24845
Reputation: 172518
You can try like this:
if [[ -p $pipe ]]
or you can simply try by removing the []
like this:
if [ -p "$pipe" ]
Also check Bash Conditional Expressions and Bash Shell: Check File Exists or Not
Upvotes: 4
Reputation:
The friendly man page lists several file test operators, including:
-e file
True if file exists.
and
-f file
True if file exists and is a regular file.
and
-p file
True if file exists and is a named pipe (FIFO).
Don't just use -f
all the time; use the one that does the thing you mean.
Upvotes: 7