Przepraszam z góry - nie w pełni rozumiem idee stojące za tym, o co pytam, na tyle dobrze, aby zrozumieć, dlaczego to nie działa (Nie wiem czego muszę się nauczyć). Najpierw przeszukałem wymianę stosów, szukając odpowiedzi - znalazłem informacje, które wydawały mi się odpowiednie, ale nie wyjaśniłem wystarczająco dobrze koncepcji, że zrozumiałem, jak zbudować działające rozwiązanie. Przeszukałem Google'a, ale nie znalazłem żadnych informacji, które opisują dokładnie to, co się dzieje w taki sposób, jaki rozumiem. Każdy kierunek pojęć tła, które mogą mi pomóc zrozumieć, co się dzieje, byłby bardzo doceniony.Używanie read -p w skrypcie basha, który został wykonany z rury
Czy można uzyskać dane wejściowe użytkownika w skrypcie bash, który został wykonany z potoku?
Na przykład:
wget -q -O - http://myscript.sh | bash
I w skrypcie:
read -p "Do some action (y/n): " __response
if [[ "$__response" =~ ^[Yy]$ ]]; then
echo "Performing some action ..."
fi
Jak rozumiem, to nie działa, ponieważ próby odczytu Aby odczytać dane wejściowe z stdin i skrypt bash jest obecnie "wykonywany przez tę rurkę" (jestem pewien, że istnieje bardziej techniczny dokładny sposób opisywania tego, co się dzieje, ale nie wiem jak).
znalazłem rozwiązanie, które zalecił stosowanie:
read -t 1 __response </dev/tty
Jednak to nie działa albo.
Każde światło rzucające się na pojęcia, które muszę zrozumieć, aby to zadziałało, lub wyjaśnienia, dlaczego nie działa lub rozwiązania byłyby bardzo mile widziane.
Dziękuję. Działa świetnie. – nfarrar