使用 Octave 的函数 System()

使用 Octave 的函数 System()

我做了一个在终端上打开 LTSpice 模拟器的快捷方式,输入“ltspice”打开程序,我使用了别名命令和程序路径并保存到 bashrc。

它在终端上运行得很好,但是当我尝试在八度上使用该命令时:

    system('ltspice');

它返回,

    sh: 1: ltspice: not found

答案1

别名仅在定义它们的会话中可用(因为它们用于交互使用),因此 Octave 将看不到它们。

我建议您ltspice在调用中指定完整路径system()

答案2

别名适用于交互式 shell。 Bash 仅.bashrc在启动交互式 shell 时读取。没有配置文件 1 可以为该system函数提供别名。这样的功能可能很危险,因为它会影响应用程序调用的每个 shell 命令,并可能使其执行意想不到的操作。

要使应用程序可以从任何地方使用,请确保可执行文件所在的目录位于您的命令搜索路径。将目录添加到登录脚本中的路径中,例如

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

或者将可执行文件的符号链接放在路径上已有的目录中,例如

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

1实际上是有的——所有常见的shshell 都会读取环境变量指定的文件ENV。但无论如何我不建议使用这个。
²是的。 Csh 用户.cshrc时不时就会被它们咬伤。 csh 脚本倾向于以/bin/csh -f.

相关内容