Я хочу к командам выполнения после вхождения в удаленный сервер с помощью shh

#! /bin/bash
read -p 'Username: ' user
read -p 'IP: ' ip

ssh "$user"@"$ip"

osascript -e ' tell app "System Events" to display "Hello world"'

Этот файл будет, работал автоматически, таким образом, он не похож, я выполняю команду после команды

Это не выполняет последнюю команду, и я не знаю почему

Это является терминальным на Mac

0
задан 17 February 2015 в 20:32

2 ответа

Я не знаю, как ssh точно работает, но Ваш сценарий записан способом, что это будет ожидать, пока команда ssh наконец не завершается. Тогда будет это продолжать и выполнять Вашу последнюю строку (osascript...). Чтобы постараться не ожидать ssh для возврата запишите & в конце ssh строки. Это будет иметь интерпретатор, чтобы продолжить выполнять следующую команду в параллельном потоке.

1
ответ дан 6 October 2019 в 00:54

Ваша последняя команда,

osascript -e ' tell app "System Events" to display "Hello world"'

будет выполняться, только если Вы выходите из удаленного ssh терминала. Таким образом Вы не можете достигнуть того, что Вы пытаетесь сделать.

, Надо надеяться, существует , ожидают сценарий . Можно работать со следующим сценарием,

#!/bin/sh
expect <<'END'
set timeout 10
set login "your_username" 
set addr "remote_ip"
set pw "your_password"             # skip this line if you have password less login
spawn ssh $login@$addr
expect "$login@$addr's password:"  # skip this line if you have password less login
send -- "$pw\r"                    # skip this line if you have password less login
expect "~"                         # use your prompt here, I have ~, replace ~ with your prompt
send -- "ls\r"                     # replace ls with your command
expect "~"
send -- "exit\r"
expect eof
END

Видят , Как выполниться, команды sudo с Ожидают & отправить команды в сценарии удара?

1
ответ дан 6 October 2019 в 00:54

Другие вопросы по тегам:

Похожие вопросы: