2013-02-11 3 views
2

입력에 따라 다른 디렉터리로 변경되는 스크립트를 작성하고 싶습니다. 이 같은 :쉘 스크립트에 명령 줄 인수가 전달되지 않습니다.

test.sh: 
#!/bin/bash 
ssh machine001 '(chdir ~/dev$1; pwd)' 

하지만 ./test.sh 2을 실행으로 여전히 ~/dev로 이동합니다. 내 주장이 무시당하는 것 같습니다. 내가 여기서 바보 같은 짓을하고 있니?

답변

5

배쉬는 작은 따옴표 (') 문자열 내의 변수 구문을 무시합니다. 대체물을 만들려면 큰 따옴표 (")가 필요합니다.

#!/bin/bash 
ssh machine001 "(chdir ~/dev$1; pwd)" 
+0

아, 그 중 하나는 놓치 셨습니다. – user1861088

2

매개 변수는 작은 따옴표로 묶여 있으므로 로컬 쪽에서 확장되지 않습니다. 대신 큰 따옴표를 사용하십시오. 당신은 단지 다음 명령의 쌍을 실행 종료되기 때문에

#!/bin/bash 

ssh machine001 "chdir ~/dev$1; pwd" 

(...) 필요가 없습니다.

관련 문제