2010-03-10 5 views
4

나는이처럼 ssh 연결을 통해 변수를 전달하기 위해 노력하고있어 :전달 변수

working_dir="/home/user/some_dir/"

ssh [email protected]_host 'qsub $working_dir/some_file.txt'

연결 자체가 성립하지만,이 코드는 나를 준다 다음과 같은 오류 :이 t에 의해 설명 될 수

working_dir: Undefined variable.

원격 컴퓨터는 로컬로 정의 되었기 때문에 변수 $working_dir을 가지고 있지 않습니다.

명령에서 로컬로 값을 가져 오는 방법이 있습니까? 당신은 단일 인용 문자열을 사용하는

ssh [email protected]_host "qsub $working_dir/some_file.txt"

답변

11

시도, 즉 로컬 변수를 평가해야합니다.

큰 따옴표가 붙은 문자열을 사용하면 어떻게 되나요? 이처럼
: 그와

ssh [email protected]_host "qsub $working_dir/some_file.txt" 

$working_dir 변수는 최종에 보간한다 - 그 값은 ssh 연결을 통해 전송.

+0

Thnx, 당신은 생명을 구하는 사람입니다! – lugte098

+0

광산의 작은 bash-recipe : "작은 따옴표는 그 사이의 내용을 문자 그대로 해석해야하는 경우에만 사용하십시오." – orithena

+0

grep 변수를 로컬로 확장해야 명령을 원격으로 전달할 수 있습니까? ssh qa @ myremote '찾기 $ (ls -r /home/qa/log/*.*.log | grep -vi 감사 | 헤드 -n 1) -type f -print | xargs grep $ ERRORS ' – Dss

2

을 - 나는 변수가 그 내부에 보간하지 않는 가정 : 따옴표를 사용

+0

빠른 답장을 보내 주셔서 감사합니다. – lugte098

+0

당신을 환영합니다 :-) –