Хобрук: Ваш путь к мастерству в программировании

Сценарий оболочки не ждет

 ssh [email protected]<<EOF
    cd ../../my/path/
    sh runscript.sh
    wait
    cd ../../temp/path
    sh secondscript.sh
 EOF

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

21.03.2014

  • вам нужно добавить & char в конец runscript.sh cmd, чтобы он работал в фоновом режиме, тогда wait может иметь некоторый эффект. Но учитывая, что вы НЕ хотите запускать secondscript.sh до тех пор, пока первый не будет завершен, забудьте & и забудьте wait. Вы можете поставить read myVar?"Press Enter Key to continue", чтобы подделать функцию pause. Удачи. 21.03.2014
  • ОТКУДА скрипт1 читает? Из STDIN? Вы перенаправили STDIN на локальный HEREDOC... Или я что-то упустил? 21.03.2014
  • runscript.sh будет считывать пользовательский ввод с терминала. Так что я действительно не хочу имитировать паузу. Мне нужно ввести информацию, которую будет использовать runscript.sh. Затем, как только он завершится, будет запущен secondscript.sh. 21.03.2014
  • wait даже не будет видно/запущено, пока sh runscript.sh не завершится. wait не имеет ничего общего, потому что вы ничего не делаете в фоновом режиме. Чтобы поставить вас на другой путь, вы уверены, что sh runscript.sh получает ввод с вашего терминала? ssh ... читает свой ввод из здесь-документа и, вероятно, просто игнорирует ваш терминал (который может даже не быть подключен, поскольку вы не используете ssh -t...). 21.03.2014
  • Твальберг. Я думаю, что это то, что происходит. Этот сценарий, который я пишу, запускает runscript.sh, и я получаю предупреждение: псевдотерминал не будет выделен, потому что стандартный ввод не является терминалом. Я предполагаю, что это означает, что ему все равно, закончен он или нет, и он не получит никакого моего стандартного ввода. 21.03.2014
  • @user1958833 user1958833 Не то чтобы ему все равно, но любые попытки runscript.sh прочитать с терминала, скорее всего, потерпят неудачу - то, что произойдет в этом случае, полностью зависит от того, что делает runscript.sh, но я не могу этого предположить. Вполне возможно, что он просто быстро завершается после того, как ему не удалось получить ожидаемый ввод, либо потому, что он ведет себя хорошо и делает это намеренно, либо потому, что он делает целую кучу вещей с пустой строкой, что в конечном итоге приводит к сбою других вещей. .. 22.03.2014

Новые материалы

Прогресс в технологии Трансформеров часть 3
Многомасштабный управляющий сигнальный преобразователь для бесфазного синтеза движения (arXiv) Автор: Линтао Ван , Кун Ху , Лей Бай , Юй Дин , Ваньли Оуян , Чжиюн Ван . Аннотация:..

Представляем поддержку компонентов Vue.js. Мгновенный HMR и многое другое.
Хотя у FuseBox уже был плагин Vue, он был базовым и не имел многих функций, которые делали работу с Vue.js такой приятной. Однако с этим выпуском мы рады сообщить, что в FuseBox..

Приключения в Javascript, часть 1
Я продолжаю думать о том, чтобы писать больше, но чем больше я думаю об этом, тем меньше я это делаю. Итак, сегодня я перестал думать и начал писать. Отсюда можно только спускаться… В..

Понимание дженериков в TypeScript: подробное руководство
Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..