Os aliases só estão disponíveis na sessão que os definiu (como são destinados ao uso interativo), então o Octave não os verá.
Em vez disso, recomendo que você especifique o caminho completo para ltspice
na chamada para system()
.
Eu fiz um atalho para abrir o simulador LTSpice no terminal, para abrir o programa digitando "ltspice", usei o comando alias e o caminho do programa e salvei para bashrc.
Está funcionando muito bem no terminal, mas quando tento usar o comando na oitava:
system('ltspice');
retorna,
sh: 1: ltspice: not found
Os aliases só estão disponíveis na sessão que os definiu (como são destinados ao uso interativo), então o Octave não os verá.
Em vez disso, recomendo que você especifique o caminho completo para ltspice
na chamada para system()
.
Os aliases são destinados a shells interativos. O Bash apenas lê .bashrc
quando inicia um shell interativo. Não há arquivo de configuração¹ que torne os aliases disponíveis para a função system
. Tal característica pode ser perigosa² porque afetaria todos os comandos shell invocados por um aplicativo e possivelmente faria algo inesperado.
Para disponibilizar um aplicativo de qualquer lugar, certifique-se de que o diretório onde o executável está em seu caminho de pesquisa do comando . Adicione o diretório ao seu caminho nos seus scripts de login, por exemplo,
PATH="$PATH:/opt/ltspice/bin"
ou coloque um link simbólico para o executável em um diretório que já esteja no seu caminho, por exemplo
ln -s /opt/ltspice/bin/ltspice /usr/local/bin/ltsipce
¹ Na verdade, existe - todos os shells sh
comuns lêem o arquivo designado pela variável de ambiente ENV
. Mas eu não recomendo usar isso de qualquer maneira.
² É. Usuários do Csh são mordidos pelo .cshrc
de tempos em tempos. Há uma razão pela qual os scripts csh tendem a começar com /bin/csh -f
.