Octaveの関数System()を使う

Octaveの関数System()を使う

端末でLTSpiceエミュレータを開くショートカットを作成し、「ltspice」と入力してプログラムを開き、aliasコマンドとプログラムパスを使用してbashrcに保存しました。

端末ではうまく動作しますが、オクターブでコマンドを使用しようとすると、次のようになります。

    system('ltspice');

帰ってきて、

    sh: 1: ltspice: not found

答え1

エイリアスは定義されたセッションでのみ使用できるため(対話式を使用するためであるため)、Octaveではこれを見ることはできません。

ltspice呼び出し時にフルパスを指定することをお勧めしますsystem()

答え2

エイリアスは対話型シェル用です。 Bashは.bashrcインタラクティブシェルの起動時にのみ読み込みます。どのプロファイル1もsystemこの機能のエイリアスを提供できません。これらの機能は、アプリケーションが呼び出すすべてのシェルコマンドに影響を与え、予期しない操作を実行させる可能性があるため、危険です。

どこでもアプリケーションを使用できるようにするには、実行可能ファイルがあるディレクトリコマンド検索パス。ログインスクリプトのパスにディレクトリを追加します。

PATH="$PATH:/opt/ltspice/bin"

または、すでにパスにあるディレクトリに実行可能ファイルへのシンボリックリンクを配置します。

ln -s /opt/ltspice/bin/ltspice /usr/local/bin/ltsipce

1実際には、すべての共通shシェルが環境変数で指定されたファイルを読み込みますENV。しかし、とにかく私はこれを使用しないことをお勧めします。
²はい。 Cshユーザーは.cshrc時々噛まれます。 cshスクリプトは/bin/csh -f

関連情報