SSH- 서버, 명령 실행 및 연결 유지 작동하지 않습니다 … #bin/bash tab=”–tab” cmd=”bash -c ‘ssh user@host’;bash” foo=”” for

다른 탭이있는 터미널을 열고 ssh각 탭에서 서버에 로그온 한 다음 각 탭에서 명령을 실행하는 스크립트를 작성하고 싶습니다 . 예를 들면 다음과 같습니다 htop..

아래 스크립트는 서버에 모두 로그인 된 4 개의 탭이있는 터미널을 엽니 다. 그러나 줄에 htop명령 을 추가하려고하면 cmd=더 이상 작동하지 않습니다 …

#bin/bash

tab="--tab"
cmd="bash -c 'ssh user@host';bash"
foo=""

for i in 1 2 3 4; do
      foo+=($tab -e "$cmd")
done

gnome-terminal "${foo[@]}"

exit 0

나는 이것을 시도했다 …

cmd="bash -c 'ssh user@host htop';bash"

ssh --help의 구문 ssh은 다음과 같습니다.

사용법 : ssh [user @] 호스트 이름 [명령]



답변

가장 간단한 형태로 :

ssh -t user@host "command; bash"

-t여기서 중요한 부분입니다. 호스트가 프로세스에 가상 터미널을 할당하도록하여 호스트가 계속 열려있게합니다.

많은 서버에서 bash중단 을 실행하려는 경우 마지막에 생략을 할 수 있지만 중단을 중단하면 로컬 터미널로 다시 연결됩니다.


답변