명령 대체 및 I/O 리디렉션?

명령 대체 및 I/O 리디렉션?

차이점을 알고 싶습니다.입력/출력 리디렉션그리고명령 대체?

which예를 들어, 명령 출력을 cd명령(디렉토리가 아닌 것으로 알고 있음) 으로 리디렉션 하려는 경우 해당 cd명령은 리디렉션을 사용하지 않습니다 which.
예를 들어 which w3af | cd? 와 같은 명령 대체를 사용해야 하는데 cd $( which w3af ), 왜 그렇습니까?

답변1

인용한 특정 예의 경우 명령 대체를 사용해야 합니다.

cd -P -- "$(dirname -- "$(which w3af)")"

이유는 간단 cd합니다 STDIN. 매개변수만 허용하기 때문입니다.

또한 which command디렉터리 대신 파일 경로가 생성됩니다.

답변2

이는 명령이 수락되었는지 테스트하는 방법입니다 stdin. 이는 완전한 것은 아닙니다.

% { wc ; cat ; } <<INTEST
    nope
INTEST

> 1 1 5

% { cd ; cat ; } <<INTEST
    nope
INTEST

> nope

관련 정보