2013-05-31 15 views
5

Buduję bootstrap dla projektu Github i chciałbym, aby był to prosty jednolinijkowy. Skrypt wymaga wprowadzenia hasła.odczyt bash jest pomijany, gdy uruchamiany jest z rury zwijania

To działa i zatrzymuje skrypt czekać na wejście:

curl -s https://raw.github.com/willfarrell/.vhosts/master/setup.sh -o setup.sh 
bash setup.sh 

to nie przeszkadza i po prostu pomija żądania wejściowych:

curl -s https://raw.github.com/willfarrell/.vhosts/master/setup.sh | bash 

setup.sh zawiera kod jest czymś :

# code before 
read -p "Password:" -s password 
# code after 

Czy można mieć czystą wykładzinę? Jeśli tak, jak można to zrobić?

Rozwiązanie:

użycia trzy rozkazy zamiast produkcji rur.

curl -s https://raw.github.com/willfarrell/.vhosts/master/setup.sh -o vhosts.sh && bash vhosts.sh && rm vhosts.sh

Odpowiedz

4

Z rury, read czyta ze standardowego wejścia (rury), ale powłoka już przeczytać wszystkie standardowe wejście, więc nie jest coś dla read czytać.

+0

Czy istnieje sposób obejścia danych wejściowych użytkownika podczas korzystania z potoku? –

+0

Jeśli jesteś pewien, że tam jest człowiek, przeczytaj "/ dev/tty'? –

+0

Zajrzę do tego. dzięki. –

Powiązane problemy