Cómo crear un progtwig simple usando for loop y si.
mi código:
for i in mon tue wed thurs fri sat do echo weekday: $i if [ $i == thurs ] then echo weekend: $i+1 fi done
y el resultado:
weekday: mon weekday: tue weekday: wed weekday: thurs weekend: thurs+1 weekday: fri weekday: sat
Sin embargo, quiero tener un resultado como:
weekday: mon weekday: tue weekday: wed weekday: thurs weekend: fri weekend: sat
¿Qué syntax me perdí?
Código dado:
for i in mon tue wed thurs fri sat do echo weekday: $i if [ $i == thurs ] then echo weekend: $i+1 fi done
echo weekday: $i
se llama cada iteración for
produce un elemento cada iteración a la variable i
. No es un índice de matriz como podría haber esperado Diferentes forms de get su resultado esperado:
1) hacer una comparación de cadenas
for i in mon tue wed thurs fri sat do if [ $i == fri ] || [ $i == sat ] then echo weekend: $i else echo weekday: $i fi done
2) Use una cadena para save el prefijo y modificarlo según una condición
s='weekday' for i in mon tue wed thurs fri sat do echo "$s: $i" if [ $i == thurs ] then s='weekend' fi done
3) Usa una matriz
days=(mon tue wed thurs fri sat) for ((i=0; i<${#days[@]}; i++)) do if (( i < 4 )) then echo "weekday: ${days[$i]}" else echo "weekend: ${days[$i]}" fi done