【问题标题】:what shell is used by the system command on matlabmatlab上的系统命令使用什么shell
【发布时间】:2018-09-05 22:28:59
【问题描述】:

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

【问题讨论】:

    标签: matlab


    【解决方案1】:

    正如document 所说,

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

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

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

    setenv MATLAB_SHELL /bin/ksh
    

    在 csh 中,tcsh.Or,

    export MATLAB_SHELL="/bin/ksh"
    

    在 bash 中。

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

    如果你每次都使用/bin/ksh,最好在你的~/.bashrc中设置MATLAB_SHELL等等。

    【讨论】:

      猜你喜欢
      • 2014-07-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 2017-12-02
      相关资源
      最近更新 更多