Skrypt bash i wpisanie has

Potrzebujesz pomocy z C, C++, perl, python, itp.
Van Pytel
Beginner
Posty: 166
Rejestracja: 09 maja 2010, 17:05

Skrypt bash i wpisanie hasła

Post 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ź.
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post 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
Van Pytel
Beginner
Posty: 166
Rejestracja: 09 maja 2010, 17:05

Post 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 :(
Awatar użytkownika
Unit
Beginner
Posty: 356
Rejestracja: 27 marca 2007, 09:39

Post autor: Unit »

To może lepszym rozwiązaniem będzie expect
Van Pytel
Beginner
Posty: 166
Rejestracja: 09 maja 2010, 17:05

Post 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?
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Użyj expect w funkcji.
Van Pytel
Beginner
Posty: 166
Rejestracja: 09 maja 2010, 17:05

Post autor: Van Pytel »

Właśnie nie wiem zbytnio jak to zrobić, bo wiele przykładów przerabiałem i mi nie wychodzi :(
ODPOWIEDZ