나에게 명령이 있습니다.
# ssh -t computer.A 'command'
SSH를 통해 컴퓨터에서 원격으로 간단한 명령을 실행하세요.
그 외에도 컴퓨터 A를 통해 컴퓨터 B에서 명령을 실행하고 싶습니다. 내 생각에는 다음과 같습니다.
# ssh -t computer.A 'ssh -t computer.B 'shutdown -p now' shutdown -p now'
이 명령은 컴퓨터 B를 먼저 종료한 다음 컴퓨터 A를 종료하지만 컴퓨터 B만 종료하고 컴퓨터 A를 종료하는 명령은 무시합니다.
무엇이 잘못되었나요?
답변1
따옴표를 이스케이프 처리하고 이 두 명령을 서로 분리해야 합니다.
ssh -t computer.A 'ssh -t computer.B \\'shutdown -p now\\'; shutdown -p now'
첫 번째 종료가 성공한 경우에만 컴퓨터의 두 번째 종료를 실행하려면 ;
로 바꾸십시오 &&
.
다음과 같이 대체 참조를 사용할 수도 있습니다.
ssh -t computer.A 'ssh -t computer.B "shutdown -p now"; shutdown -p now'
답변2
컴퓨터 A에 있다고 상상해 보세요. B 컴퓨터를 종료하려고 합니다. 어떻게 하나요?
당신은 입력,
ssh -t computer.B 'shutdown -p now'
이제 실행하고 싶습니다.저것명령("ssh -t 컴퓨터.B...")당신의컴퓨터. 인용해야 하는데 명령에 이미 두 개의 인용문이 있으므로탈출하다그들을:
ssh -t computer.A 'ssh -t computer.B \'shutdown -p now\''
실제로 두 개의 명령을 실행하려고 하므로 이를 큰 따옴표 안에 추가해야 합니다.
ssh -t computer.A 'ssh -t computer.B \'shutdown -p now\'; shutdown -p now'
네가 원한다면반복외부에서 컴퓨터에 연결하면 헹구고 반복하십시오.
첫 번째 단계, 모든 따옴표를 이스케이프 처리하세요.그리고 모든 슬래시, 그래서
\
되고 .\\
이는 다음과 같은 의미 가 됩니다 .'
\'
\'
\\\'
ssh -t computer.A \'ssh -t computer.B \\\'shutdown -p now\\\'; shutdown -p now\'
2단계: 따옴표로 묶고 shutdown 명령을 추가하고 그 앞에 ssh 명령을 추가합니다.
ssh -t mycomputer 'ssh -t computer.A \'ssh -t computer.B \\\'shutdown -p now\\\'; shutdown -p now\'; shutdown -p now'