O shell Bourne é um pouco antigo. A versão do Solaris não tem o operador -e para o test (a.k.a. [ ) embutido que foi introduzido um pouco tarde na vida do shell Bourne® e consagrado pelo POSIX.
Como solução alternativa, você pode usar -f para testar a existência de um arquivo normal ou -r se não estiver interessado em arquivos ilegíveis.
Melhor, altere #!/bin/sh para #!/usr/xpg4/bin/sh ou #!/bin/ksh para obter um shell POSIX.
Tenha em atenção que [ $option -eq 9 ] provavelmente não está certo: -eq é um operador de comparação numérica, mas $option não é realmente numérico - é uma data. Em uma máquina de 32 bits, quando 201301271355 é interpretado como um número, é obtido o módulo 2 32 . Acontece que nenhuma data no século 21 está muito próxima de 0 módulo 2 32 , mas confiar nisso é muito frágil. Faça este [ "$option" = 9 ] em vez disso.
Como um princípio geral de programação de shell, sempre coloca aspas duplas em torno das substituições de variáveis e comandos : "$foo" , "$(foo)" . Se você não fizer isso, o shell dividirá o resultado em cada caractere de espaço em branco e tratará cada palavra resultante como um padrão de caractere curinga de nome de arquivo. Portanto, um $foo desprotegido só será seguro se o valor de foo não contiver nenhum espaço em branco ou \[?* . Jogue com segurança e sempre use aspas duplas (a menos que você pretenda que a divisão e a correspondência de padrões ocorram).
¹ Ou foi uma adição de ksh que nunca foi portada para Bourne? Não tenho certeza.