Dado 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
-
echo weekday: $i
é chamado a cada iteração - O loop
for
produz um elemento a cada iteração para a variáveli
.i
não é um índice de matriz, como você poderia esperar
Diferentes maneiras de obter o resultado esperado:
1) faça uma comparação de string
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 uma string para salvar o prefixo e modificá-lo dependendo de uma condição
s='weekday'
for i in mon tue wed thurs fri sat
do
echo "$s: $i"
if [ $i == thurs ]
then
s='weekend'
fi
done
3) Use um array
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