한 명령의 출력을 다른 명령의 비표준 입력으로 파이핑

한 명령의 출력을 다른 명령의 비표준 입력으로 파이핑

다음과 같은 작업을 수행하고 싶습니다.

which someapplciation | cd outputfrompreviouscommand

이 명령은 디렉터리를 제공하며 프로그래밍 언어(예: , 등)를 사용하지 않고 파이프 명령 만 사용 which하여 해당 출력을 현재 작업 디렉터리로 출력할 수 있기를 원합니다 .awkbashperl

추가 예:

which vi

출력 제공

/some/dir

pwd내 작업 디렉토리를 내가 사용할 수 있는 디렉토리 로 옮기고 싶습니다 /some/dir. .

답변1

실행하는 두 번째 명령이 표준 입력에서 읽히지 않으면 파이프를 사용할 수 없습니다. 그러나 다음과 같은 작업을 수행할 수 있습니다.

cd $(which someapplication)

또는 cd실행 파일 이름 대신 디렉터리 이름이 필요하기 때문에:

cd $(dirname $(which someapplication))

$(...)연산자는 괄호로 묶인 명령을 실행하고 해당 출력을 명령줄로 바꿉니다.

관련 정보