文档

unix

执行UNIX命令和返回输出

语法

状态= unix(命令)
[status,cmdout] = unix(command)
[status,cmdout] = unix(command,'-echo')

描述

状态= unix (命令调用UNIX®执行指定命令的操作系统。该操作等待命令执行完成,然后将命令的退出状态返回给状态变量。

例子

状态cmdout= unix(命令还返回命令的标准输出cmdout。这种语法对于不需要用户输入的命令最有用。

状态cmdout= unix(命令,“回声”)还显示(回显)MATLAB中的命令输出®命令窗口。此语法对于需要用户输入并在MATLAB命令窗口中正确运行的命令最有用。

例子

全部折叠

列出当前登录的所有用户,保存命令退出状态和输出。然后查看状态。

命令=“谁”;[status,cmdout] = system(command);状态
状态= 0

一个状态值为0表示命令执行成功。的用户列表cmdout

输入参数

全部折叠

UNIX命令,指定为字符向量。的命令在UNIX shell中执行,这可能不是您启动MATLAB的shell。

例子:“ls”

输出参数

全部折叠

命令退出状态,返回为0或者是非零整数。命令执行成功后,状态0。否则,状态是一个非零整数。

  • 如果命令包含&字符(),然后状态出境状态是什么时候命令开始

  • 如果命令不包括&字符(),然后状态是否开启了出境状态命令完成。

操作系统命令的输出,作为字符向量返回。系统shell可能无法正确表示非unicode®字符。

限制

  • MATLAB将字符转换为操作系统外壳接受的编码。的输出命令转换为MATLAB编码,以便在命令窗口中显示。如果从命令中得到意想不到的结果,请输入命令参数,以查看操作系统如何处理您的输入。

提示

  • 要在后台执行操作系统命令,请包含尾随字符,,在…命令论证(例如,“emacs &”)。退出状态立即返回到状态变量。此语法对于在运行时需要交互式用户命令输入的控制台程序非常有用,并且不能在MATLAB命令窗口中正确运行。

    请注意

    如果命令包括尾轴性格,cmdout是空的。

  • unix重定向功能stdin对于被调用的命令,命令,默认为。此重定向还将MATLAB脚本命令和键盘预输入缓冲区传递给被调用的命令unix函数执行。这种行为可能导致损坏的输出unix不会立即完成执行。禁用stdin和输入前重定向,包括格式化的文本< / dev / null在对被调用命令的调用中。

算法

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

R2006a之前引入

这个话题有帮助吗?