Estou usando o Ubuntu desde a versão 10.04 e o achei mais amigável em comparação com o Windows. Agora estou usando o Precise 12.04. Eu criei muitos lançadores personalizados para scripts bash e nunca tive nenhum problema até ontem.
Eu instalei um pacote de software que possui vários executáveis. O executável principal abaqus
está localizado em \opt\softwaresname
e é um link simbólico para o executável abq610i
in /opt/softwaresname/executables/
.
O principal exe abaqus
requer alguns argumentos de linha de comando. Eu uso o argumento cae
, (ou seja, abaqus cae
), mas com outro comando para renderizar os gráficos em um modo melhor, portanto, a chamada final é:
XLIB_SKIP_ARGB_VISUALS=1 abaqus cae
Eu criei um alias para esse longo comando no arquivo .bash_rc
como:
alias abaquscae="XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
Tudo funcionou perfeitamente bem, pois o alias executa o software. Sendo um campeão preguiçoso, pensei em criar um lançador Cairo-dock para isso. Então, eu digitei abaquscae
na caixa "comando para iniciar ao clicar" e selecione "Executar em um terminal". No entanto, para meu espanto, ao clicar no lançador deu um erro ::
There was an error creating the child process for this terminal
Failed to execute child process "abaquscae" (No such file or directory)
Consequentemente, escrevi um pequeno arquivo de script bash "abaquscae.sh":
#!/bin/sh
"XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
e salvo, tornou-o executável e, ao executá-lo no shell bash, recebi novamente o erro semelhante, ou seja:
./abaquscae.sh: 2: ./abaquscae.sh: XLIB_SKIP_ARGB_VISUALS=1 abaqus cae: not found
Agora estou totalmente perdido, tentei muitos truques, por exemplo,
1- removendo vírgulas no script bash,
2- tornando dos2unix
,
3- usando caminho completo para o executável
mas esse script não está sendo executado no terminal bash.
PROBLEMA:
O comando (assim como seu alias) funciona bem no terminal bash, no entanto, quando eles são executados através de algum outro canal (por exemplo, scripts / launchers), o terminal falha em não reconhecê-los :( ..
Se algum especialista tiver conselhos / informações sobre como resolver este problema, por favor, compartilhe. Eu serei muito grato.