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).