ayuda para crear un script de shell para imprimir día de la semana y fin de semana

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
  • El bucle 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