Исправленный скрипт должен выглядеть примерно так:
#!/bin/sh
for hi in $(seq 0 100)
do
if [ "$(expr $hi % 5)" -eq 5 ]
then
echo hello
elif [ "$(expr $hi % 5)" -eq 6 ]
then
echo bye
elif [ "$(expr $hi % 5)" -eq 7 ]
then
echo whats up
fi
echo "$hi"
done
Но этот цикл никогда не войдет ни в одно из условий if, поскольку остаток операции по модулю 5 никогда не будет равен 5, 6 или 7.
Попробуйте
$ awk -F, '
BEGIN{OFS=FS}
NR==1{n = split($0,a); print "month,variable,value"; next}
{for(i=2;i<4;i++) print $1,a[i],$i}
' file
month,variable,value
June,var1,10
June,var2,a
Sep,var1,20
Sep,var2,b
Dec,var1,30
Dec,var2,c
(это больше похоже на взрыв, чем на перемещение ).
awk -F, '
BEGIN{OFS=FS}
NR==1{n = split($0,a); print "month,variable,value"; next}
{for(i=2;i<NF;i++) if (a[i] !=""){ print $1,a[i],$i} }
' file