Fish“重定向目标无效”错误

Fish“重定向目标无效”错误

该命令在 Bash 和 Zsh 中运行良好:

expac -H M "%011m\t%-20n\t%10d" $(comm -23 <(pacman -Qqen | sort) <({ pacman -Qqg xorg; expac -l '\n' '%E' base; } | sort -u)) | sort -n

但在 Fish 中,它会导致这个错误:

fish: Invalid redirection target: 
comm -23 <(pacman -Qqen | sort) <({ pacman -Qqg xorg; expac -l '\n' '%E' base; } | sort -u)
         ^~~~~~~~~~~~~~~~~~~~~^
in command substitution
fish: Unknown error while evaluating command substitution
expac -H M "%011m\t%-20n\t%10d" $(comm -23 <(pacman -Qqen | sort) <({ pacman -Qqg xorg; expac -l '\n' '%E' base; } | sort -u)) | sort -n
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

这是什么错误?以及如何修复该命令以在 Fish 中工作?谢谢!

答案1

谢谢穆鲁以及后来错误的描述,我找到了答案。命令中的两件事需要更改才能正常工作:

  1. Fish 不支持 <(),而应该使用 '| psub'。
  2. Fish 不支持“{ ... }”进行分组命令,应使用“begin;” ...;结尾'。

所以正确的命令是:

expac -H M "%011m\t%-20n\t%10d" $(comm -23 (pacman -Qqen | sort | psub) (begin; pacman -Qqg xorg; expac -l '\n' '%E' base; end | sort -u | psub)) | sort -n

相关内容