У меня есть скрипт bash, который вызывает openconnect, который затем поворачивается и читает 4 строки из стандартного ввода.Это (по порядку): группа, пароль, тип аутентификации и одноразовый пароль.
Я могу программно получить значения для первых 3, но одноразовый пароль меняется каждый раз.Есть ли способ написать скрипт, который может перенаправить стандартный ввод для первых 3 значений (printf "%s\n%s\n%s\n" $group $password $auth
), а затем заставить программу прочитать последнюю строку (одноразовый пароль) в качестве ввода с клавиатуры?
#!/bin/bash
set -e
type="GROUP_SUBSTITUTED"
pass=`pass password_substituted`
auth="1"
echo -e "$type\n$pass\n$auth" |
sudo openconnect \
-u username_substituted \
-i tun1 \
vpn.substituted.url
В приведенном выше сценарии я передаю 3 из 4 запросов openconnect
, но когда он запрашивает 4-е значение (одноразовый пароль), он сразу глотает пустую строку вместо ожидания ввода с клавиатуры.