물고기 "리디렉션 대상이 잘못되었습니다" 오류

물고기 "리디렉션 대상이 잘못되었습니다" 오류

이 명령은 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

관련 정보