Мне нужно отправить некоторые учетные данные, определенные в файле, в команду подключения vpn, которая ожидает ввода имени пользователя и пароля при его выполнении. В моем вопросе есть аналогичное требование. Автоматически вводите ввод в командной строке.
Приведенное ниже решение работает и для меня:
printf 'username\npassword\n' | /usr/sbin/openconnect -i vpn0 ...
(выполняется внутри скрипта оболочки). Но мне нужно передать учетные данные, содержащиеся в файле (env_properties) и загрузить как переменные среды. Я загружаю содержимое файла, используя следующую команду:
[ -f env_properties] && . env_properties
Содержимое выглядит следующим образом
export VPN_USERNAME=myUsername
export VPN_PASSWORD=myPassword
Однако такая конструкция больше не работает:
printf "${VPN_USERNAME}\n${VPN_PASSWORD}\n" | /usr/sbin/openconnect -i vpn0 ...
Кажется, что вход не распознан правильно по какой-либо причине. И ни эта команда
printf "/usr/sbin/openconnect -i vpn0 ... < env_properties
с измененным содержимым файла, содержащим только одно имя пользователя и пароль, каждая в новой строке. То же самое относится к решению данного документа.
Любые идеи?
Вместо:
printf "${VPN_USERNAME}\n${VPN_PASSWORD}\n"
попробуйте следующее:
printf "%s\n%s\n" “$VPN_USERNAME” “$VPN_PASSWORD”
Вместо:
printf "${VPN_USERNAME}\n${VPN_PASSWORD}\n"
попробуйте следующее:
printf "%s\n%s\n" “$VPN_USERNAME” “$VPN_PASSWORD”
Вместо:
printf "${VPN_USERNAME}\n${VPN_PASSWORD}\n"
попробуйте следующее:
printf "%s\n%s\n" “$VPN_USERNAME” “$VPN_PASSWORD”
Глупо меня! Входной файл имеет возврат каретки, с которым система Linux, конечно, не справляется. После удаления их команда печати, которую я опубликовал, теперь работает.
Глупо меня! Входной файл имеет возврат каретки, с которым система Linux, конечно, не справляется. После удаления их команда печати, которую я опубликовал, теперь работает.
Глупо меня! Входной файл имеет возврат каретки, с которым система Linux, конечно, не справляется. После удаления их команда печати, которую я опубликовал, теперь работает.