Miałem plik bash, który monitował użytkownika o niektóre parametry i używał domyślnych, jeśli nic nie zostało podane. Następnie skrypt wykonał kilka innych poleceń z parametrami. To działało świetnie - bez problemów do ostatniego dodania.Jak czytać od użytkownika w linii odczytu pętli while?
Próbując odczytać parametr NAMES z pliku txt, dodałem pętlę while, aby pobrać nazwy w pliku, ale nadal chciałbym, aby pozostałe parametry były monitowane.
Ale raz dodałem pętlę while, wyjście pokazuje drukowany znak zachęty w get_ans() i nigdy nie pauzuje dla odczytu, więc wszystkie wartości domyślne są wybrane.
Chciałbym odczytać pierwszy parametr z pliku, a następnie wszystkie kolejne pliki od pytania użytkownika.
Co złamałem, dodając pętlę while?
cat list.txt |
while read line
do
get_ans "Name" "$line"
read NAME < $tmp_file
get_ans "Name" "$line"
read NAME < $tmp_file
done
function get_ans
{
if [ -f $tmp_file ]; then
rm $tmp_file
PROMPT=$1
DEFAULT=$2
echo -n "$PROMPT [$DEFAULT]: "
read ans
if [ -z "$ans" ]; then
ans="$DEFAULT"
fi
echo "$ans" > $tmp_file
}
(UWAGA:. Kodeks nie jest skopiować & pasty więc proszę wybaczyć literówki rzeczywisty kod jest funkcja określona przed main())
będę patrzeć na innych odpowiedzi, z których (jeden mówi, jak _solve_ problem, nie tylko to, co to jest) przed podjęciem decyzji, aby zaakceptować. –