У меня возникли проблемы с созданием скрипта с интерактивным входом. Я сделал один, но он не запрашивает логин, он автоматически регистрируется при запуске скрипта.
Мне просто нужен вывод следующим образом:
please enter ftp server : username : password :
Использовать read
(см. help read
) – может быть следующим:
read -p "please enter ftp server : " SERVER read -p "username : " USERNAM IFS= read -s -p "password :" USERPSS
Таким образом, вы будете иметь сервер, имя пользователя и пароль, собранные в переменных, соответственно, $SERVER
, $USERNAM
и $USERPSS
. (Обратите внимание, что из-за пароля пароль не будет эхом, и благодаря IFS=
он может содержать пробел в начале.)
Имейте в виду, что, даже если пароль не отображается при появлении запроса, вы не должны использовать переменную $USERPSS
непосредственно в команде, например, ftp "${USERNAM}:${USERPSS}@{SERVER}"
, поскольку она будет обнаружена любому другому пользователю, который запускает ps
(например) на этом компьютере. Лучше передайте пароль непосредственно в качестве ввода в программу или (лучше всего), просто попросите программу запросить его.