명령 대체를 사용하여 여러 명령 실행

명령 대체를 사용하여 여러 명령 실행

bash에서 내가 하려는 것은 을 foo실행할 때 $(foo)디렉토리를 변경하고 를 사용하여 스크립트를 실행하는 스크립트를 작성하는 것입니다 source. 내용 foo:

echo cd bar
echo "&&"
echo source baz

을 실행하면 $(foo)디렉토리가 "bar"로 변경되지만 실행되지 않습니다 source baz. 이 작업을 수행할 수 있는 방법이 있나요?

답변1

eval다음과 같이 출력 해야 합니다 .

eval $(foo)

그렇지 않으면 &&(또는 다른 유사한 언어 요소)는 따옴표로 묶인 것처럼 처리됩니다 cd.

$ echo $(foo)
cd bar && source baz

선행을 건너뛰면 4개의 인수로 echo실행되어 첫 번째 인수를 제외한 모든 인수가 자동으로 삭제됩니다.cdbar && source baz

답변2

당신이 사용할 수있는별칭(또한보십시오:남자 강타) 당신이 하려는 일을 하려고 합니다.

alias foo='cd bar && source baz'

foo를 실행할 때 디렉토리가 bar 및 소스 baz로 변경됩니다.

관련 정보