¿Es posible formatear esta muestra:
for i in string1 string2 stringN
do
echo $i
done
a algo similar a esto:
for i in
string1
string2
stringN
do
echo $i
done
EDIT: Perdón por la confusión, no me di cuenta de que había diferentes métodos de ejecución de script - sh <scriptname>
versus bash <scriptname>
y también esta cosa que no puedo nombrar ahora mismo - #!/bin/sh
y #!/bin/bash
:)
El uso de matrices en bash puede ayudar a la legibilidad: esta sintaxis de matrices permite espacios en blanco arbitrarios entre las palabras.
strings=(
string1
string2
"string with spaces"
stringN
)
for i in "${strings[@]}"; do
echo "$i"
done
Puedes escapar las nuevas líneas antes/después de cada elemento sobre el que hagas un bucle:
for i in \
string1 \
string2 \
stringN
do
printf '%s\n' "$i"
done
O, para este sencillo ejemplo:
printf '%s\n' string1 string2 stringN
que tiene el mismo resultado.
Relacionado:
Variación usando un array bash
:
strings=(
string1
string2
stringN
)
printf '%s\n' "${strings[@]}"