魚「リダイレクト先が間違っています」エラー

魚「リダイレクト先が間違っています」エラー

このコマンドは 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: 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
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

このエラーは何ですか?そして、フィッシュで動作するようにこのコマンドをどのように変更できますか?ありがとうございます!

答え1

ありがとうムル後でエラーの説明を聞いて答えを見つけました。正しく機能するには、コマンドで2つの変更を行う必要があります。

  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

関連情報