Как я могу проверить сообщения Gmail с подсказкой для пароля из сценария?

Так как компьютер B не может получить доступ к компьютеру A, необходимо будет открыть удаленный туннель от компьютера первое.

ssh user@computerB -R vvv:localhost:22
4
23.08.2014, 01:12
2 ответа

Проблема в том, что curl ожидает нормальных терминальных настроек и zle не ожидает, что вы измените терминальные настройки. Поэтому вы можете написать вместо этого:

_check-gmail() {
  zle -I
  (
    s=$(stty -g)  # safe zle's terminal setting
    stty sane     # sane settings for curl
    curl -u username --silent "https://mail.google.com/mail/feed/atom" |
     tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' |
     sed -n "s/<title>\(.*\)<\/title.*name>\(.*\)<\/name>.*/\2 - \1/p"
    stty $s       # restore zle's terminal settings
  ) < /dev/tty
}
3
27.01.2020, 20:58

Один из подходов - запросить пользователя перед запуском _check-gmail , чтобы в вашем скрипте был пароль в переменной. Затем вы передаете переменную пароля в свою функцию, чтобы команда curl могла ее использовать.

Например:

$ tst_fun () { echo "Parameter #1 is $1"; }
$ tst_fun "my_pass"
Parameter #1 is my_pass
$ 

Чтобы получить пароль от пользователя вашего скрипта, у вас есть несколько вариантов. Если вам нужен красивый графический интерфейс, вы можете использовать zenity , чтобы открыть диалоговое окно с запросом пароля.

Например:

my_pass=$(zenity --password)
echo "$my_pass"

ss #1

Теперь, когда выполняются вышеуказанные команды, результаты, введенные в диалоговом окне, доступны в переменной $ my_pass . Поэтому, если бы я набрал в диалоговом окне пароль supersecret, я бы получил следующее:

$ my_pass=$(zenity --password)
$ echo $my_pass
supersecret
0
27.01.2020, 20:58

Теги

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