
Hice una pequeña prueba para hacer eco de todo en mi portal con nombre .txt. Al escribir en la terminal, quiero que el script haga eco de todo con el nombre ingresado, pero solo muestro la primera variable.
input=$1
for portal in $(grep $input /etc/portals | sed '/^#/ d' | awk '{print $1, $2}');
do
echo -e "\e[1;32m "$portal" \e[0m";
exit 0
done
else
echo -e "\e[1;31m --> Wrong Input <-- \e[0m"
exit 1
done
fi
==============
El código funciona pero solo se imprime $1 y no $2. SI cambio el código a: awk '{print $1 $2}' entonces el resultado es $1$2 sin tabulación ni espacio entre variables. ===================================
¿Cómo puedo separar las variables para que se muestre el eco?
prueba1 [tabulación/espacio] prueba2
Respuesta1
#!/bin/bash
# exit if input is empty.
[[ -z $1 ]] && exit 1
# Check in the file /etc/portals for
# the existens of the word "$1" and place
# first word in "$a" and rest in "$b".
while read -r a b; do
printf %s\\t%s\\n $a "$b"
done < <(grep -P "^(?!#).*$1" /etc/portals)