Function System () usando Octave

1

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
    
por Luan R 06.05.2017 / 21:16

2 respostas

2

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() .

    
por 06.05.2017 / 21:22
0

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 .

    
por 07.05.2017 / 00:06