2012-03-05 3 views
1

원격으로 실행되는 bash 스크립트에 인수를 전달하거나 변수를 설정하려고합니다. 문제의 일부는 연결 후 chroot를 실행하는 서버입니다. 스크립트를 실행하는 유일한 방법은 다음과 같습니다.bash로 리디렉션하여 실행되는 bash 스크립트에 인수를 전달하십시오.

ssh [email protected] 'bash -ex' < /tmp/script 

스크립트의 변수가 필요합니다. 여하튼 bash에 전달 된 arg 또는 환경 변수인지는 중요하지 않습니다. 내가 그 솔루션을 좋아하지 않는 이유가 분명하다고 생각

sed -e s/VAR/VAR=dog/g /tmp/script > /tmp/replaced 
ssh [email protected] 'bash -ex' < /tmp/replaced 

이 문제를 해결하기 위해 내가 생각할 수있는 유일한 방법은 같은 일을하는 것입니다. 내가 원하는 것을 할 수 있습니까?

답변

2

SendEnv (클라이언트) 및 AcceptEnv (서버)을 올바르게 구성하면 ssh에서 변수를 보낼 수 있습니다.

VAR=dog ssh [email protected] 'bash -ex' < /tmp/replaced 
+0

나는 그렇게 생각하지 않습니다. 나는 기본적인 ssh 서버 var = dog에 이르기까지 모든 것들을 제거했다. 그것은 나를 기록, 내 bashrc 파일을 실행하고 다시 걷어 차다. 내가 누락 된 것? 제가 생각할 수있는 유일한 것은 OpenSSH 3.4 vs 5.1 – JeffCharter

+0

입니다. 안타깝게도 내 컴퓨터 중 하나가 AccpectEnv를 지원하지 않는 구형 버전의 ssh를 사용하고 있습니다. 해당 상자에서 ssh를 업그레이드 할 수 없습니다. 어쨌든 당신의 도움에 감사드립니다. 나는 SendEnv가 존재한다는 것을 몰랐다. – JeffCharter

관련 문제