Na linha
month=$($date | cut -f1 -d' ')
você executa o que estiver em $date
como um comando e canaliza sua saída para cut
.
Eu acho que você quer
month=$( printf '%s\n' "$date" | cut -f 1 -d ' ' )
aqui.
Além disso, não misture backticks e $(...)
no mesmo script, é confuso. Apenas use $(...)
.
A comparação de strings é feita com =
:
if [ "$month" = "April" ]; then
Não deixe de citar duas vezes suas variáveis. Veja Implicações de segurança do esquecimento de citar uma variável em shells bash / POSIX
Aritmética inteira pode ser feita usando $(( expression ))
. expr
é antiquado.
j1=$(( "$1" ))
j2=$(( "$2" ))
...
j1=$(( j1 + 1 ))