Issue
I got this function:
#!/bin/bash
prompt() {
read -r -p "${1:-Usunąć podany plik? [t/N]} " response
case "$response" in
[tT][eE][sS]|[tT])
true
echo "Usuwam... $line"
;;
*)
false
echo "Pomijam... $line"
;;
esac
}
And I want it to work inside a loop that reads line by line from a .txt file:
while IFS= read -r line
do
echo "$line" && prompt
done < lista.txt
As I run the script here's the output (it doesn't actually prompt for user input):
11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI2.pdf
Pomijam... 11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI2.pdf
11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI4.pdf
Pomijam... 11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI4.pdf
11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI6.pdf
Pomijam... 11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI6.pdf
The lista.txt file looks like that if I use this loop:
while IFS= read -r line
do
echo "$line"
done < lista.txt
Output:
11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI2.pdf
11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI3.pdf
11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI4.pdf
11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI5.pdf
11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI6.pdf
11M /home/kamil/TEST/FOLDER ZE SPACJAMI/PLIK ZE SPACJAMI.pdf
My desire is that it prompts a user input as it reads every line.
Solution
The line you need to change is :
read -r -p "${1:-Usunąć podany plik? [t/N]} " response < /dev/tty
Answered By - Philippe Answer Checked By - Gilberto Lyons (WPSolving Admin)