Cómo mostrar los resultados con dos espacios de pestañas cuando hay un bucle for

Cómo mostrar los resultados con dos espacios de pestañas cuando hay un bucle for

Me gustaría crear un código para obtener el siguiente resultado:

echo -e "\t\tPlease enter your name?"
read name
name="${name,,}"
for i in $(echo "Hello " $name) ; do
    echo ${i^} 
done | sed 's/^/\t\t/;s/$/, here is your order:/'

Si ingreso el nombre como:mike denver

La salida es:

<here come out the right space of two tabs>Hello, here is your order:
<here come out the right space of two tabs>Mike, here is your order:
<here come out the right space of two tabs>Denver, here is your order:

Básicamente, crea el espacio derecho desde el lado izquierdo según la cantidad de pestañas que puse ( \t), pero repite la línea de impresión para Hellomás para cada nombre ingresado. No entendí cómo poner el comando sed afuera. Mi resultado esperado debería ser este:

<here come out the right space of two tabs>Hello, Mike Denver here is your order: 

Respuesta1

En lugar de utilizar el forbucle, es mucho más fácil hacer esto:

echo -e "\t\tPlease enter your name?"
read -a name
name="${name}"
echo -e "\t\tHello ${name[@]^}, here is your order:"

Producción:

            Please enter your name?
mike denver
            Hello Mike Denver, here is your order:

Las comillas dobles alrededor del argumento echoexpandirán la variable e imprimirán todo junto a la vez en el formato deseado.

Respuesta2

Podrías usar una matriz para el nombre y printf:

read -p $'\t\tPlease enter your name?\n' -a name
name=( "${name[@],,}" )
printf '\t\tHello %s, here is your order:\n' "${name[*]^}"

información relacionada