2012-06-17 2 views
1

여러 ssh 명령을 실행하는 스크립트를 작성하여 타이핑을 줄이려고합니다. 단순히 예를 들어 편집기를 엽니 다 아무 문제가 없지만 , 내가 특정 파일을 편집기를 열 수 없습니다 :스크립트를 통한 SSH x 전달/화면

을이 작동합니다

editFile="ssh -X -t [email protected]$serverIP 'nano'" 
$editFile 

이되지 않습니다

editFile="ssh -X -t [email protected]$serverIP 'nano ~/test'" 
$editFile 
단순히 화면을 시작하는 것은 잘 작동하는 동안

는 또한, 그래서 같은 화면에 연결할 수 없습니다 :

viewScreen="ssh -X -t [email protected]$serverIP 'screen -r screen1' 
$viewScreen 
debug1: Sending command: 'nano /home/herb/.Scripts/test.txt' 
bash: nano ~/test: No such file or directory 

debug1: Sending command: 'screen -r screen1' 
bash: screen -r screen1: command not found 

두 명령은 터미널에 입력하면 문제없이 작동, 그래서 내가 부족 마법의 일종이 있어야한다 : 나는 -v 플래그를 추가하면 연결이 설정된 후 414,, 나는이 오류 이리!

+1

[BashFAQ/050] (http://mywiki.wooledge.org/BashFAQ/050)을 참조하십시오. –

답변

3

하나의 문제는 "명령"인수에 작은 따옴표를 사용하고 있다는 것입니다. 그것들이 없으면 작동해야합니다 (또는 적어도 다른 오류를줍니다).

당신은 대신 변수 명령을 할당하는 "별칭"명령을 사용한다 :

alias viewScreen="ssh -X -t [email protected]$serverIP screen -r screen1" 
viewScreen 

별칭을 정의 할 때이 변수를 평가하는 인식. 그러므로 $ username과 $ serverIP는 이전에 정의되어야합니다.

+0

작은 따옴표를 큰 따옴표로 바꾸면 같은 오류가 발생합니다 ... – herbert

+1

미안하지만 실수로 의견을 중간에 보냈습니다 ... 실험을하면서 따옴표없이 따옴표를 넣으면 효과가있었습니다! 변수를 사용할 때만 작동하는 것을 제외하고 별칭 메서드는 찾지 못한 명령을 내 보냅니다! 나는 커맨드 부분 주위의 단일/이중 따옴표가 필요하다는 인상 아래에 있었다. apparantly 그들은 스크립트가 실패한 유일한 이유였다. 별칭과 방법을 사용해야하는 이유를 나에게 줄 수 있습니까? – herbert

관련 문제