Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何测试命名管道是否存在?_Bash - Fatal编程技术网

Bash 如何测试命名管道是否存在?

Bash 如何测试命名管道是否存在?,bash,Bash,为了测试文件是否存在,我执行以下操作: if [ -f $FILE ]; 但是如果$FILE是一个命名管道,它就不起作用了, e、 g.ls-l pipename显示具有p属性的管道: prw-r--r-- 1 usr grp 0 Nov 26 02:22 pipename 如何测试命名管道是否存在?您可以使用-p测试 if [[ -p $pipe ]] 或 您可以这样尝试: if [[ -p $pipe ]] if [ -p "$pipe" ] 或者您可以简单地删除[],如下所示:

为了测试文件是否存在,我执行以下操作:

if [ -f $FILE ];
但是如果$FILE是一个命名管道,它就不起作用了, e、 g.
ls-l pipename
显示具有p属性的管道:

prw-r--r-- 1 usr grp 0 Nov 26 02:22 pipename

如何测试命名管道是否存在?

您可以使用
-p
测试

if [[ -p $pipe ]]

您可以这样尝试:

if [[  -p $pipe ]]
if [ -p "$pipe" ]
或者您可以简单地删除
[]
,如下所示:

if [[  -p $pipe ]]
if [ -p "$pipe" ]

另外,请检查友好的手册页并列出几个文件测试操作员,包括:

-e file
       True if file exists.


不要总是使用
-f
;使用能够实现您的意思的表达式。

下面是所有bash测试表达式<代码>测试的主页,我想是吧?(我过去常常在bash主页上查找它们,但这远远不够高效)
-p file
       True if file exists and is a named pipe (FIFO).