运行外部命令、脚本和程序
您可以使用 !
操作符或 system
函数从 MATLAB® 命令行中执行操作系统命令。
shell 转义函数
感叹号字符 (!
) 有时也称为 Bang,是一个 shell 转义字符。!
字符指示输入行的其余内容是针对操作系统的命令。操作系统决定了您能够为命令提供的输入参量列表的最大长度。使用 !
,无需退出 MATLAB 即可调用实用工具或其他可执行程序。
例如,以下代码将在 UNIX® 平台上使用 vi 编辑器中打开名为 yearlystats.m
的文件。
!vi yearlystats.m
在外部程序完成或您退出程序后,操作系统会将控制权返回给 MATLAB。要在后台模式下运行应用程序或在单独的窗口中显示输出,请在行尾添加 &
。
例如,以下语句将打开 Microsoft® Excel® 程序并将控制权返回给命令提示符,以便您能够继续运行 MATLAB 命令。
!excel.exe &
在 Windows® 平台上,以下命令将在 DOS 窗口中显示结果。
!dir &
注意
要在阶乘表达式中使用感叹号,请调用 factorial
函数。
返回结果和状态
要运行返回结果和状态的程序,请使用 system
函数。
指定环境变量
要使用特定的环境变量执行操作系统命令,请将针对操作系统的所有命令包含在系统调用中。这适用于 MATLAB !
(Bang)、system
、dos
和 unix
函数。要分隔命令:
在 Windows 平台上,使用
&
(与符号)在 UNIX 平台上,使用
;
(分号)
也可以在启动 MATLAB 之前设置环境变量。
在系统路径以外运行 UNIX 程序
当包含该文件的文件夹不在对 MATLAB 可见的 UNIX 系统路径上时,您可以从 MATLAB 中运行 UNIX 程序。要查看对 MATLAB 可见的路径,请在 MATLAB 命令提示符下键入以下命令。
getenv('PATH')
您可以为当前 MATLAB 会话修改系统路径,也可以跨后续 MATLAB 会话修改系统路径,如以下主题中所述:
当前 MATLAB 会话
您可以为当前 MATLAB 会话修改系统路径。当您重新启动 MATLAB 时,该文件夹将不再位于系统路径上。
要修改系统路径,请执行以下操作之一。
将 MATLAB 中的当前文件夹更改为包含您要运行的程序的文件夹。
在命令提示符下键入以下命令。
path1 = getenv('PATH') path1 = [path1 ':/usr/local/bin'] setenv('PATH', path1) !echo $PATH
在当前 shell 会话中跨 MATLAB 会话
您可以在 shell 会话中修改系统路径。当您在当前 shell 会话中重新启动 MATLAB 时,该文件夹仍然位于系统路径上。但是,如果您重新启动 shell 会话,然后重新启动 MATLAB,该文件夹将不再位于系统路径上。
要在 shell 中将文件夹添加到系统路径,请执行以下操作:
退出 MATLAB。
根据所使用的 shell,在系统命令提示符下键入以下命令之一,其中
myfolder
是包含您要运行的程序的文件夹:对于
bash
或相关 shell:export PATH="$PATH:myfolder"
对于
tcsh
或相关 shell:setenv PATH "${PATH}:myfolder"
启动 MATLAB。
在 MATLAB 命令行窗口中,键入:
!echo $PATH
跨所有 MATLAB 会话
要跨 shell 和 MATLAB 会话修改系统路径,请按在 MATLAB 启动文件中指定启动选项中所述在 MATLAB 启动文件中添加以下命令。
path1 = getenv('PATH') path1 = [path1 ':/usr/local/bin'] setenv('PATH', path1) !echo $PATH
在 macOS 上运行 AppleScript
在 macOS 平台上,不能直接从 MATLAB 中运行 Apple AppleScript 程序。要运行 AppleScript 命令,请使用 MATLAB unix
或 !
(Bang) 函数调用 Apple macOS osascript
函数。