Strona 1 z 1

Skrypt bash i wpisanie hasła

: 29 maja 2012, 11:33
autor: Van Pytel
Mam skrypt który wykonuje polecenie i to polecenie czeka na hasło jak mogę wprowadzić hasło z poziomu skryptu?
Dziękuje za odpowiedź.

: 29 maja 2012, 13:00
autor: sethiel
A to zależy o jakie hasło chodzi. Np. -p < nazwa_pliku.txt i w pliku hasło.
Albo

Kod: Zaznacz cały

#!bin/bash
$haslo=moje_haslo
/home/user/wywolaj_program $haslo

: 29 maja 2012, 14:55
autor: Van Pytel
Właśnie, że ten sposób nie działa, Chodzi o gpg, próbowałem send, echo itd, ale to nie pomogło :(

: 29 maja 2012, 19:28
autor: Unit
To może lepszym rozwiązaniem będzie expect

: 29 maja 2012, 23:52
autor: Van Pytel
Dzięki za pomoc :) expect rozwiązał częściowo problem.
Aby wykonać skrypt muszę mieć na poczatku:

Kod: Zaznacz cały

#!/usr/bin/expect -f
a ja już w skrypcie mam:

Kod: Zaznacz cały

]#!/bin/[I]bash[/I]
Więc expect mi się nie wykona.

A gdy mam

Kod: Zaznacz cały

#!/usr/bin/expect -f
to mi reszta skryptów mi się nie wykona, bo jest pisana pod "bash".
Jak mogę ominąć tą niedogodność?

Gdy zrobię tak:

Kod: Zaznacz cały

#!/bin/bash
...kod bash...
echo -e "======================="
/usr/bin/expect - << 'EndMark'
set PASS 'test'
spawn gpg -c test
expect "*Podaj hasło:*"
send -- "$PASS\r"
expect "*Powtórz hasło:*"
send -- "$PASS\r"
EndMark
exit
To nie wykonuje się skrypt. "Zawiesza" się na "Podaj hasło:" i czeka nie wiem na co, nawet jak dam enter to zero reakcji dopiero reaguje jak dam ^C.
Co może być nie tak?

: 30 maja 2012, 19:13
autor: DaVidoSS
Użyj expect w funkcji.

: 30 maja 2012, 22:04
autor: Van Pytel
Właśnie nie wiem zbytnio jak to zrobić, bo wiele przykładów przerabiałem i mi nie wychodzi :(