Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Автоматизация ввода пароля в скрипте bash..  (Прочитано 12515 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #45 : 23 Апреля 2017, 19:50:52 »
Вот код с развернутым логом (exp_internal 1)

(Нажмите, чтобы показать/скрыть)

Вот ошибки

(Нажмите, чтобы показать/скрыть)

Пользователь добавил сообщение 23 Апреля 2017, 20:08:07:
2-й рабочий вариант скрипта, предложенный участником форума с логином renzrv

Я немного переделал, добавил условие на проверку существования,
создаваемых каталогов(иначе в консоли появляются предупреждения
о существовании такого каталога)
 И сделал окончание скрипта другим, иначе вывод в консоль, по окончании работы
скрипта, идет в одну строку с результатом работы
и строкой приглашения в консоль

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 23 Апреля 2017, 20:23:34 от alex-sky »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #46 : 23 Апреля 2017, 20:47:53 »
команда не найдена
А ну-ка: which expect?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #47 : 23 Апреля 2017, 23:12:24 »
Код: (Bash) [Выделить]
/usr/bin/expect

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #48 : 23 Апреля 2017, 23:22:20 »
2-й рабочий вариант скрипта
Ставь пометку "Решено".

Цитировать
dir=~/.vnc
mdir=~/lamp-5
 
[ -d "$dir" ] || mkdir "$dir";
[ -d "$mdir" ] || mkdir "$mdir";
Короче и без предупреждений:
mkdir ~/.vnc ~/lamp-5 2>/dev/nullИ ";" в конце строк не нужно.

Цитировать
expect eof
Сам придумал?


Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #49 : 24 Апреля 2017, 09:56:50 »
Прямо парадокс… Как-будто он не видит expect`a в системе… А как Вы сам скрипт запускаете? А если так expect -f ./passwd_x11vnc_v2.shИ ещё, попробуйте в первую строку добавить -f
Код: (tcl) [Выделить]
#!/usr/bin/expect -f
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #50 : 24 Апреля 2017, 11:20:58 »
Запускал так

Цитировать
expect -f ./passwd_x11vnc_v2.sh

Не создает каталоги, но ошибок не пишет, как-будто-бы все создается

(Нажмите, чтобы показать/скрыть)


Вот развернутый вывод

(Нажмите, чтобы показать/скрыть)

Сам придумал?

Цитировать
expect eof

Нашел в примерах


Пользователь добавил сообщение 24 Апреля 2017, 11:36:30:
expect eof здесь нужен чтобы скрипт не завершался сразу после выполнения.
« Последнее редактирование: 24 Апреля 2017, 11:36:30 от alex-sky »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #51 : 24 Апреля 2017, 12:22:22 »
Не создает каталоги
Точно? Тогда опробуйте следующие варианты:
  • Первая строка
    Код: (tcl) [Выделить]
    #!/usr/bin/expect -с 'mkdir -p $HOME/{lamp-7,.vnc1}' -f
  • или вместо send "mkdir -p $myhome/lamp-7 $myhome/.vnc1\r"
    Код: (tcl) [Выделить]
    exec "mkdir -p $myhome/lamp-7 $myhome/.vnc1"
  • или
    Код: (tcl) [Выделить]
    system "mkdir -p $myhome/lamp-7 $myhome/.vnc1"
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #52 : 24 Апреля 2017, 22:00:26 »
Код полностью

(Нажмите, чтобы показать/скрыть)


Ошибка -
Код: (TCL) [Выделить]
#!/usr/bin/expect -с 'mkdir -p $HOME/{lamp-7,.vnc1}' -f


Код: (TCL) [Выделить]
exec "mkdir -p $myhome/lamp-7 $myhome/.vnc1"
Ошибка

(Нажмите, чтобы показать/скрыть)

Код: (TCL) [Выделить]
system "mkdir -p $myhome/lamp-7 $myhome/.vnc1"
Ошибка

(Нажмите, чтобы показать/скрыть)

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #53 : 24 Апреля 2017, 23:40:07 »
Там было «или»… Правильно было все-таки заменить только
Код: (tcl) [Выделить]
send "mkdir -p $myhome/lamp-7 $myhome/.vnc1\r"
Код: (tcl) [Выделить]
system "mkdir -p $myhome/lamp-7 $myhome/.vnc1"
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн RonJovis

  • Забанен
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
    • НЕОФИЦИАЛЬНЫЕ СБОРКИ LINUX / UBUNTU
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #54 : 25 Апреля 2017, 00:19:31 »
Автоматизация ввода пароля
Есть вот такой способ:

echo "password" | sudo -S "mkdir -p $myhome/lamp-7 $myhome/.vnc1"


#!/bin/sh

# echo "password" | sudo -S command
# echo "12345" | sudo -S synaptic

echo "password" | sudo -S "mkdir -p $myhome/lamp-7 $myhome/.vnc1"


Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #55 : 25 Апреля 2017, 18:52:06 »
ам было «или»… Правильно было все-таки заменить только

Так я по очереди и пробовал, а в коде, который привел за комментировал лишние строчки, при проверке расскоментировывал нужную строку и проверял.

Пользователь добавил сообщение 25 Апреля 2017, 18:54:19:
Автоматизация ввода пароля
Есть вот такой способ:


вы полностью приведите код, не понятно, что вы имеете ввиду, полное решение приведите
« Последнее редактирование: 25 Апреля 2017, 18:54:19 от alex-sky »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #56 : 25 Апреля 2017, 21:52:29 »
Покажите развернутый
Код: (tcl) [Выделить]
#!/usr/bin/expect -f
 
exp_internal 1
set pass "12345678"
set myhome "$env(HOME)"
 
 
system "mkdir -p $myhome/lamp-7 $myhome/.vnc1"
spawn x11vnc -storepasswd $myhome/.vnc1/passwd-test9
while {1} {
    expect {
        "Write*"       {
             send "y\r"
             send "exit\r"
             break
        }
        "password:"    {send "$pass\r"}
    }
 }
wait
close $spawn_id
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #57 : 26 Апреля 2017, 09:24:48 »
Вывод

(Нажмите, чтобы показать/скрыть)

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #58 : 26 Апреля 2017, 19:55:14 »
Как запускали? Первая строка такая?
Код: (tcl) [Выделить]
#!/usr/bin/expect -f
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Автоматизация ввода пароля в скрипте bash..
« Ответ #59 : 26 Апреля 2017, 20:51:58 »
Как запускали? Первая строка такая?

Да у меня все время такой заголовок при использовании скрипта с expect

 

Страница сгенерирована за 0.059 секунд. Запросов: 23.