Se a primeira linha é exatamente como você mostrou aqui e você está executando a linha do console em um diretório diferente do que você está executando o script a partir de então a explicação mais provável é que existe um arquivo em o diretório de script que tem um nome de arquivo de um caractere, que é um dos caracteres em "driver".
O shell vê [driver]
como um potencial glob e tenta associá-lo a nomes de arquivos no diretório. Se encontrar um que corresponda, substitui o nome pelo glob. Por exemplo, o comando resultante que é executado pode parecer com:
update_drv -a -i '[myhardware]' d
que podem ter efeitos indesejados.
Para evitar isso, coloque aspas ao redor do último argumento como você tem ao redor do anterior.
No entanto , suspeito que suas strings entre colchetes sejam meros espaços reservados e você tenha omitido informações que podem ser úteis na tentativa de encontrar possíveis soluções. A propósito, a documentação do Oracle parece indicar que uma reinicialização provavelmente é necessária de qualquer maneira.
Para solucionar problemas do seu script, adicione set -x
próximo ao topo para poder ver um rastreamento. Você também pode adicionar uma linha como echo "here"
após a primeira (ou qualquer) linha para ver se o seu script chega tão longe. É muito estranho que você não esteja recebendo mensagens de erro.
Outra possibilidade é um hardware binário ou ruim corrompido, mas isso parece improvável, já que funciona na linha de comando.
Outra consideração, possivelmente primária, é que o ambiente difere entre sua sessão de console e o script. Você não diz se está executando seu script a partir da linha de comando ou por cron
. Geralmente, é nessas circunstâncias que o PATH
é diferente ou alguma variável de ambiente é definida de forma diferente ou não definida. Uma maneira de diagnosticar isso é adicionar um comando como set > script_env.out
em seu script e fazer set > cons_env.out
na linha de comando e diff
os dois arquivos e procurar diferenças significativas. Você está executando o script e o comando do console como usuários diferentes? Isso tem um efeito também.