#! /bin/bash
read -p 'Username: ' user
read -p 'IP: ' ip
ssh "$user"@"$ip"
osascript -e ' tell app "System Events" to display "Hello world"'
Этот файл будет, работал автоматически, таким образом, он не похож, я выполняю команду после команды
Это не выполняет последнюю команду, и я не знаю почему
Это является терминальным на Mac
Я не знаю, как ssh точно работает, но Ваш сценарий записан способом, что это будет ожидать, пока команда ssh наконец не завершается. Тогда будет это продолжать и выполнять Вашу последнюю строку (osascript...). Чтобы постараться не ожидать ssh для возврата запишите &
в конце ssh строки. Это будет иметь интерпретатор, чтобы продолжить выполнять следующую команду в параллельном потоке.
Ваша последняя команда,
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 с Ожидают & отправить команды в сценарии удара?