Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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/4/oop/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_Short Circuiting - Fatal编程技术网

防止Bash中的短路

防止Bash中的短路,bash,short-circuiting,Bash,Short Circuiting,我想 生成匹配文件的列表 知道是否至少有一个模式匹配 如果存在任何pdf文件,则以下操作将不起作用,因为第一个compgen将返回true,而第二个compgen将不会执行 { compgen -G "*.pdf" || compgen -G "*.txt"; } 是否有防止短路的方法?使用一个 使用;将只返回最后一个compgen的结果。我仍然需要所有计算机的逻辑or来知道是否有匹配项 您可以自己编写逻辑来处理退出状态。简短版本可能如下所示: { cm

我想

生成匹配文件的列表 知道是否至少有一个模式匹配 如果存在任何pdf文件,则以下操作将不起作用,因为第一个compgen将返回true,而第二个compgen将不会执行

{ compgen -G "*.pdf" || compgen -G "*.txt"; }
是否有防止短路的方法?

使用一个

使用;将只返回最后一个compgen的结果。我仍然需要所有计算机的逻辑or来知道是否有匹配项

您可以自己编写逻辑来处理退出状态。简短版本可能如下所示:

{ cmd1; ret=$?; cmd2; ! ((ret | $?)); }
怎么样

files=*.pdf*.txt compgen-W${files[*]} 这会中断包含空格的文件,但可以使用IFS来解决这一问题。

所以不要使用| |?@KamilCuk Using;将只返回最后一个compgen的结果。我仍然需要所有计算机的逻辑or来知道是否有匹配项。
{ cmd1; ret=$?; cmd2; ! ((ret | $?)); }