-
[ $card -eq 1 ]
- errado, o[
deve ter espaços e-eq
deve ser usado para comparação aritmética -
$c
< - você teve um backtick à direita, então remova-o. - Não está errado, mas apenas uma sugestão:
let var++
não precisa de aspas duplas e$((var++))
não precisa de$
(o operador "deferência", por assim dizer). - Não está errado, mas é desnecessário: aspas simples na atribuição de números
h=0
A ideia completa de "contagem de execução" pode ser um problema: seu script é sequencial, portanto, por definição, as variáveis desaparecerão assim que o script sair. Sua contagem de execução não será contada simplesmente porque é assim que o shell funciona. O que você pode fazer é enviar contadores para o arquivo temporário e lê-los novamente. Alternativamente, faça seu script rodar em loop while infinito. Algo como:
#!/bin/bash
h=0
l=0
while read user_input;
do
[ "$user_input" -eq 1 ] && ((h++))
[ "user_input" -eq 2 ] && ((l--1))
echo "So far h is $h, and l is $l"
done