matlab上的系统命令使用什么外壳

时间:2018-09-05 22:28:59

标签: matlab

系统命令可以使用system()语法在Matlab上运行。在UNIX环境中,matlab选择哪种外壳来执行系统命令? /etc/shells的第一个条目?可以更改默认行为吗?我正在寻找一种通用解决方案,该解决方案将应用于所有系统调用,而不是像system('/bin/ksh <command>')中那样涉及使用感兴趣的shell派生子进程的解决方案。

1 个答案:

答案 0 :(得分:1)

正如document 所说,

  

在UNIX上,MATLAB使用Shell程序执行给定命令。它通过检查系统上的环境变量来确定要使用的Shell程序。 MATLAB首先检查MATLAB_SHELL变量,如果为空或未定义,则检查SHELL。如果SHELL也为空或未定义,则MATLAB使用/ bin / sh。

MATLAB的系统命令使用MATLAB_SHELL或SHELL或/ bin / sh。您可以通过设置环境变量MATLAB_SHELL或SHELL来更改默认外壳。

例如,如果选择MATLAB_SHELL,则在启动MATLAB之前,需要设置

setenv MATLAB_SHELL /bin/ksh

在csh,tcsh中,或

export MATLAB_SHELL="/bin/ksh"

以bash播放。

然后,MATLAB将在系统命令中使用/ bin / ksh。

如果每次都使用/ bin / ksh,最好在〜/ .bashrc中设置MATLAB_SHELL,以此类推。