Можно использовать &&
и ||
операторы к цепочечным командам вместе. Например:
apt-get update && sleep 2 && init 0
который выполнит обновление системы с помощью способности, ожидать 2 секунды и перейти к runlevel 0, в зависимости от системы, это может или не может на самом деле выключить аппаратные средства.
Для разговора с одной или несколькими операциями после более произвольной операции, такими как a, по-видимому, веб-браузер, загрузите Вас, потребовал бы, чтобы дополнительная логика наблюдала файл загрузки, чтобы проверить, что загрузка на самом деле завершилась, однако, логика оболочки неизменна.
Необходимо дать параметр -X
a screen
команда, я думаю, что Вы хотите "наполнить" команду сервера Minecraft к screen
сессия.
screen -r minecraft -p 0 -X stuff "stop $(printf '\r')"
printf
отправьте возврат каретки, таким образом, команда "остановка" выполняется. -p 0
удостоверяется, что символы отправляются в начальное окно Screen.
Для отправки его ssh
у Вас есть к корпусу команда в " "
(Вы могли также использовать ` `
, но это не позволило бы Вам сделать замену команды).
ssh -t -i ~/.ssh/id_dsa server_user@server_address "screen -r minecraft -X stuff "even other_server_name is getting in on the action\! $(echo -ne '\r')""
Остерегайтесь этого !
зарезервированное слово, необходимо выйти из него.
Также возможно включать сгенерированную новую строку пользователя в команду для выполнения его:
ssh -t -i ~/.ssh/id_dsa server_user@server_address "screen -r minecraft -X stuff 'even other_server_name is getting in on the action!
'"
Выход !
не необходимо здесь.
Когда мы обнаружили в этом подобном вопросе, экран имеет проблемы с передающими ключами к сессиям, которые никогда не присоединялись. Если Вы когда-либо присоединяли, оконное стекло по умолчанию обнуляется, иначе оно тихо перестанет работать, потому что нажатия клавиш не идут в окно. Можно избежать этого путем добавления a -p 0
аргумент Вашей экранной команде.
Alternativly, можно использовать намного лучше ведущее себя tmux
вместо этого как это:
tmux new-session -d -n minecraft /var/minecraft/bin/server_nogui.sh
Затем отправьте серверу Minecraft команду остановки как это:
tmux send-keys -t minecraft "stop^M"
Обратите внимание, что ^M упорядочивают выше, визуальное представление реального, входят. Можно генерировать, это на команде как путем удара Ctrl+v Входит. Это легче, чем отправка возврата каретки с помощью оператора эха в ответе взмаха.
ssh -t -i ~/.ssh/id_dsa server_user@server_address screen -r minecraft -X stuff "even other_server_name is getting in on the action! $(echo -ne '\r')"
Я действительно не хорош с Unix, к сожалению:/ – Sukasa 14.01.2011, 12:39