У меня около 20 команд, и я должен отправить все это в оболочку Unix и скопировать результат, но я не знаю, как это сделать.
Я не уверен в том, какая у меня оболочка, потому что это небольшая программа, подключенная к управлению мобильными сетями, и с помощью этой маленькой программы у нас есть доступ к посылке команд построчно и получению результатов криком, поэтому я не могу использовать скрипты для отправка команд.
Команда 1 - Соединиться с сервером.
Дождитесь окончания команды 1
Команда 2 - обновить всю информацию с сервера 1
Подождите.
Команда 3 . Получите некоторый параметр.
... и другие подобные команды
Я пытался с cmd1 | cmd2 | cmd3
и cmd1 & cmd2 & cmd3
иcmd1;cmd2
Проблема в том, что cmd1
он подключен к RNC (элемент сети) и занимает около 15 секунд, после этого cmd2
имеет смысл. но просто работай для первого cmd. Любая подсказка, как запустить это?
источник
&&
между командами.Ответы:
Обычно просто
cmd1;cmd2;cmd3;cmd4
(если вы хотите написать это в одну строку), или использовать,cmd1 && cmd2 && cmd3 && cmd4
если вы не хотите запускать cmd3, когда cmd2 не удается.В качестве альтернативы
;
вы можете просто написать одну команду на строку.Если вы хотите, чтобы команды выполнялись параллельно в фоновом режиме, вы также можете использовать
Любой из этих методов также может быть помещен в сценарий оболочки. Существует небольшая разница между тем, что вы пишете в сценарии оболочки, и тем, что вы пишете в самой оболочке.
источник
cmd1;cmd2
случае (илиcmd1 && cmd2
в этом отношении) cmd2 не будет работать до тех пор, пока cmd1 не выйдет (и, следовательно, предположительно завершится). Так что не должно быть никаких проблем - пожалуйста, перефразируйте свой вопрос или приведите пример, который люди действительно могут воспроизвести.Вы можете посмотреть
sleep
, если ваша среда позволяет это. Полная последовательность будет что-то вродеcmd1 && sleep 10s && cmd2
.Вот соответствующая справочная страница для сна .
источник
Просто используйте скрипт, файл, содержащий команды для запуска одна за другой, например:
В первой строке (shebang) указывается запускать следующие команды с помощью
/bin/sh
, сделать файл исполняемым (chmod u+x your-little-script
), после чего вы можете запустить его./my-little-script
. Таким образом, вы не оставите некоторый шаг ;-)Прочитайте руководство по оболочке, оно предоставляет полный язык программирования. Проверьте,
bash(1)
если это то, что доступно, или же оболочка Kornksh(1)
. Они предлагают множество полезных функций для управления потоком управления в сценариях (или в этом отношении интерактивно).источник
source your-little-script
(или. your-little-script
для краткости).ssh
PuTTY
Вы можете запустить что-то вроде этого
expect
на своем локальном компьютере, чтобы отправитьcmd1
и дождаться его завершения перед выдачейcmd2
и т. Д. Вы должны определить разумный период ожидания или определенный вывод, который указывает, что команда выполнена, чтобы написать правильную Ожидайте сценарий.Разумеется,
cmd1; cmd2; cmd3; cmd4
в одной команде команды будут выполняться последовательно, одна за другой.источник