2

На моем ноутбуке с OS/X я могу набрать "скажи сделано", а мой Mac говорит "сделано".

Локально, я бы просто сделал:

do-something.sh && say done

И это позволяет мне вращаться в отдельных окнах / рабочих столах, пока сценарий не завершится.

Но теперь я перешёл с моего компьютера на удаленный компьютер с Linux. То, что я хочу, - это чтобы мой компьютер мог запускать «сказать, сделано», когда определенная команда завершается. Есть хороший способ сделать это?

4 ответа4

1

Наконечник шляпы коллеге, Золотому, который придумал это немедленно. Это нарезка их ответа, которая работает и полностью пригвождает это.

I picked "say-hi-locally" and set it up on my linux server as:
alias say-hi-locally="echo EMIT SAY HI"

Then, since I use ITerm2 as my local terminal, I set up a trigger in ITerm2 with the regexp "EMIT SAY HI" and told that to run the local command "say hi"

Now I can do:
do-something.sh; say-hi-locally

and when it finishes it will echo "EMIT SAY HI" which ITerm2 will then pick up and then my computer says "hi" to me! :-)
0
ssh linux do-something.sh && say done

Похоже, делать то, что вы хотите. Реализация какого-либо взаимодействия между удаленным хостом и вашим компьютером Mac кажется неосуществимой.

Если вы хотите запускать больше команд и беспокоитесь о задержке, используйте опции ControlMaster и ControlPersist (многие вопросы об этом уже даны ответы).

0

вам понадобится ssh-сервер на вашем Mac. Тогда вы можете сделать следующее:

[you@mac]$ ssh linux
[you@linux]$ interactive_cmd; ssh mac say done

Вы входите на свой хост Linux, запускаете команду, когда все готово, хост Linux Ssh возвращается к вашему Mac и запускает команду say .

0

На вашем компьютере, запустите TCP сервер , который будет посылать все , что он получает , чтобы say

mac $ while true; do nc -l 1234 | say; done

Затем, когда вы используете SSH, используйте -R для переадресации порта 1234 на ваш сервер:

mac $ ssh -R 1234:localhost:1234 linux

Теперь ваш сервер Linux должен иметь туннель к серверу nc на вашем Mac и может использовать nc для отправки на него текста:

linux $ echo done | nc localhost 1234

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .