Автоматически отправьте вход файла, чтобы управлять, чтобы использование развернуло переменные

Я должен отправить некоторые учетные данные, определенные в файле к команде соединения 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

с измененным содержанием файла, содержащим только простое имя пользователя и пароль, каждого в новой строке. То же относится здесь решение для документа.

Какие-либо идеи?

1
задан 18 June 2017 в 20:02

2 ответа

Вместо:

printf "${VPN_USERNAME}\n${VPN_PASSWORD}\n"

попытка это:

printf "%s\n%s\n" “$VPN_USERNAME” “$VPN_PASSWORD”
1
ответ дан 7 December 2019 в 15:33

Глупый я! Входной файл имеет возвраты каретки, с которыми, конечно, не может иметь дело система Linux. После удаления их команда печати я отправил теперь работы.

0
ответ дан 7 December 2019 в 15:33

Другие вопросы по тегам:

Похожие вопросы: