/tmp/cmd
SSH를 사용하여 원격 컴퓨터(slc05bkt)에서 로컬 파일(여기)을 실행하려고 합니다 . 다음은 스크립트 파일에서 시도한 명령입니다.
cmd="ssh -v ssuthari@slc05bkt \"bash -l -s\" < /tmp/cmd"
$cmd
다음과 같은 예외가 발생합니다.
ksh: line 1: /tmp/cmd: cannot open [No such file or directory]
이 로컬 파일의 복사본을 동일한 위치의 원격 시스템에 추가한 후에도 여전히 오류가 발생합니다.
ksh: line 1: bash -l -s: not found
아이러니하게도 명령줄에서 직접 명령을 실행할 수 있지만 스크립트에서는 위 줄을 실행할 수 없습니다. 누구든지 이 문제를 해결하도록 도와줄 수 있나요?
답변1
$cmd
변수는 평가되지 않고 확장되어 문자열로 셸에 전달되므로 오류가 발생합니다. 귀하의 경우에는 시도해 보십시오 eval "$cmd"
.
어쨌든 나쁜 습관이므로 대신 $(ssh the_rest_of_your_command_line)
사용 하는 것이 좋습니다.eval "$cmd"
eval