Tenía un archivo bash que pedía al usuario algunos parámetros y utilizaba los valores predeterminados si no se daba nada. El script luego pasó a realizar algunos otros comandos con los parámetros. Esto funcionó muy bien, no hubo problemas hasta la adición más reciente.¿Cómo leer desde el usuario dentro de la línea de lectura while-loop?
En un intento de leer el parámetro NAMES desde un archivo txt, he agregado un while-loop para incluir los nombres en el archivo, pero me gustaría que me pidieran los parámetros restantes.
Pero una vez que agregué el ciclo while, el resultado muestra el mensaje impreso en get_ans() y nunca hace una pausa para leer, por lo tanto se seleccionan todos los valores predeterminados.
Me gustaría leer el primer parámetro de un archivo, luego todos los archivos subsiguientes después de preguntar al usuario.
¿Qué he roto al agregar el while-loop?
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
}
(NOTA:. Código no se copia & pasta así que disculpen los errores tipográficos código real ha definido la función antes de que el principal())
me vería en sus otras respuestas (una de las cuales le indica cómo _solve_ el problema, no sólo lo que es) antes de tomar una decisión de aceptar. –