Sim, você precisa usar a sintaxe sh
. Você pode encontrar a especificação para o padrão portátil sh
sintaxe lá .
Nesse caso, você deseja [ "$((i+=1))" -le 29 ]
, ou se seu sh
for baseado em uma versão antiga de ash
que ainda não suportava o conjunto completo de operadores aritméticos padrão, use [ "$i" -le 28 ] ...; i=$(($i + 1))
.
Uma nota de aviso: processar um diretório gravável do mundo como /var/tmp
sob cron é como abrir uma lata de segurança worm.
Você precisa tratar os nomes dos arquivos e o tipo deles como não confiáveis e extremamente sujos.
Seu $(/bin/ls -r /var/tmp/*)
em particular é falso, pois faz muitas suposições sobre quais caracteres os nomes de arquivos podem conter e supõe que nenhum deles são diretórios ou links simbólicos para diretórios.