Espaços e -gt
user1@machine:~/tmp$ for i in {1..10}; do if [ $i -gt 5 ]; then echo $i; fi; done
6
7
8
9
10
Saída desejada: todos os números maiores que 5.
Uma das poucas tentativas:
for i in {1..10}; do if ["$i" > 5]; then echo $i; fi; done
Mas a saída é:
-bash: [1: command not found
-bash: [2: command not found
-bash: [3: command not found
-bash: [4: command not found
-bash: [5: command not found
-bash: [6: command not found
-bash: [7: command not found
-bash: [8: command not found
-bash: [9: command not found
-bash: [10: command not found
O que está faltando?
Se você estiver lidando estritamente com números inteiros, também poderá usar a expansão aritmética do bash :
$ for i in {1..10}; do if ((i>5)); then echo $i; fi; done
6
7
8
9
10
$
i=0
while case $((i+=1)) in
([6-9])
echo "$i";;
(??)
! echo "$i"
esac
do :; done