O Dash não suporta a variável de% de incrementação automática $SECONDS
encontrada no Bash. Como a variável não tem valor, o comando test
( [
) vê uma variável não definida antes do operador e produz o erro que você publicou.
Demonstração:
$ dash -c 'echo "[$SECONDS]"'
[]
$ bash -c 'echo "[$SECONDS]"'
[0]
$ dash -c '[ $var -lt 3 ]'
dash: 1: [: -lt: unexpected operator
$ dash -c 'var=1; [ $var -lt 3 ]'
$
Você pode usar o comando date
para fazer a verificação. Esteja ciente de que isso pode ser caro, pois você pode chamar um utilitário externo várias vezes.
Pode haver outras maneiras de realizar o que você está tentando fazer, mas você não diz o que é isso.
Por favor, veja também BashFAQ / 068 .