我做了一个在终端上打开 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实际上是有的——所有常见的sh
shell 都会读取环境变量指定的文件ENV
。但无论如何我不建议使用这个。
²是的。 Csh 用户.cshrc
时不时就会被它们咬伤。 csh 脚本倾向于以/bin/csh -f
.