Então parece que você quer fazer dois testes.
- Verifique se há um número de hora válido para a época, que seria de -2147483648 a 2147483647 ou + -9.22337203685478E18, dependendo de seu sistema usar 32 ou 64 bits por vez.
- Você deseja verificar um número menor que a data de hoje.
Portanto, combinando os dois testes, você está procurando números no intervalo de -2147483648 até a data de hoje no horário da época. O código abaixo deve fazer o que você deseja, embora eu possa aumentar o limite inferior para uma data de hora razoável, como a data em que o computador foi instalado ou o sistema operacional compilado. Eu arbitrariamente definir o limite inferior para 0 segundos ou 1/1/1970.
#$i stores the value being tested
#returns failed if it fails validation, otherwise it returns passed
if [ $i -le 0 -o $i -gt 'date +%s' ]; then echo "failed"; else echo "passed"; fi;