Intereting Posts
Как подключиться к Bluetooth-гарнитуре на Debian 8.1 Автоматический ввод пароля ssh в сценариях оболочки в Linux Автоматическое отключение после запуска CentOs 7 CronTab установлен JAVA_HOME Защита системы от сбоев в работе с низкой памятью, когда не используется своп Как сохранить и восстановить все параметры оболочки, включая errexit Попытка понять синтаксисы перенаправления bash и их выходы Задайте имя хоста без root и без CAP_SYS_ADMIN Могу ли я читать и записывать альтернативные файловые виджеты HFS + или потоки данных NTFS из Linux? Где находится frame.h в современных реализациях Linux? (специально для ubuntu) Рок-стабильная файловая система для больших файлов (резервное копирование) для Linux Сопоставьте блок-устройство Linux VM с его файлом vmdk в хранилище данных vmware Список ВСЕХ Ansible переменных для хоста или группы с помощью специальной команды? Установка вина из источника без доступа root используя awk для редактирования файла на основе второго файла

Можно ли выполнить скрипт, который принимает пользовательский ввод, а затем выполнить другой скрипт

Я пытаюсь запустить:

  1. Script1: принимает пароль для запуска VPN
  2. Script2: Script1 должен быть запущен (но не закончен). Запускает удаленный рабочий стол

Можно ли запускать обе команды с одной командой? Каждый раз, когда я пытаюсь Script1 & ошибки, но работает нормально, если я запускаю Script1 . Я не могу сделать Script1 && Script2 потому что Script1 не закончил работу Script2.

script1:

 VPNUSER=Rilcon42 VPNGRP=01 # ============================================================================= # you shouldn't have to change anything below here VPNURL=https://remote.someserver.edu VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script sudo openvpn --mktun --dev tun1 && \ sudo ifconfig tun1 up && \ sudo /usr/sbin/openconnect -s $VPNSCRIPT $VPNURL --user=$VPNUSER --authgroup=$VPNGRP --interface=tun1 sudo ifconfig tun1 down 

Скрипт2:

 rdesktop 123.1234.23.1453 

script1 + 2:

 VPNUSER=Rilcon42 VPNGRP=01 # ============================================================================= # you shouldn't have to change anything below here VPNURL=https://remote.someserver.edu VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script sudo openvpn --mktun --dev tun1 && \ sudo ifconfig tun1 up && \ sudo /usr/sbin/openconnect -s $VPNSCRIPT $VPNURL --user=$VPNUSER --authgroup=$VPNGRP --interface=tun1 & rdesktop 123.1234.23.1453 wait sudo ifconfig tun1 down 

Часть, которая считывает пользовательский ввод с терминала, должна запускаться на переднем плане. В большинстве настроек sudo необходимо запустить на переднем плане.

Вызовите sudo на весь скрипт. Вызов sudo отдельно, как это для запуска последовательных команд, не имеет большого смысла.

Предполагая, что openconnect не читает ввод пользователя, измените Script на

 VPNUSER=Rilcon42 VPNGRP=01 VPNURL=https://remote.someserver.edu VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script sudo -b sh -c ' openvpn --mktun --dev tun1 && ifconfig tun1 up && { /usr/sbin/openconnect -s "$1" "$2" --user="$3" --authgroup="$4" --interface=tun1 ifconfig tun1 down } ' "$VPNSCRIPT" "$VPNURL" "$VPNUSER" "$VPNGRP" 

и запустить Script1 на переднем плане, но только после того, как VPN подключен (что может раздражать, чтобы обнаружить – возможно, пинговая удаленный конец, пока он не появится).

Я не знаком с openconnect, поэтому я предполагаю, что он делает. Если openconnect требует ввода пользователем из терминала, а затем блокируется до тех пор, пока VPN не будет отключен, запуск его в фоновом режиме не будет работать. Но если так оно и работает, возможно, у него есть возможность зайти в фоновый режим после прочтения пароля.