exponenta event banner

Запуск внешних команд, сценариев и программ

Команды операционной системы можно выполнять из командной строки MATLAB ® с помощью ! оператор или system функция.

Функция выхода из оболочки

Символ восклицательного знака (!), иногда называемый bang, является побегом снаряда. ! символ указывает, что остальная часть входной строки является командой для операционной системы. Операционная система определяет максимальную длину списка аргументов, который может быть введен в команду. Использовать ! для вызова утилит или других исполняемых программ без выхода из MATLAB.

Например, следующий код открывает редактор vi для файла с именем yearlystats.m на платформе UNIX ®.

!vi yearlystats.m

После завершения работы внешней программы или выхода из нее операционная система возвращает управление в MATLAB. Для запуска приложения в фоновом режиме или отображения выходных данных в отдельном окне добавьте & до конца линии.

Например, следующая инструкция открывает программу Microsoft ® Excel ® и возвращает элемент управления в командную строку, чтобы можно было продолжить выполнение команд MATLAB.

!excel.exe &

Следующая команда на платформе Windows ® отображает результаты в окне DOS.

!dir &

Примечание

Чтобы использовать восклицательный знак в факториальном выражении, вызовите factorial функция.

Результаты возврата и статус

Для запуска программы, возвращающей результаты и статус, используйте system функция.

Указать переменные среды

Для выполнения команд операционной системы с определенными переменными среды включите все команды в операционную систему в рамках системного вызова. Это относится к MATLAB ! (bang), system, dos, и unix функции. Для разделения команд:

  • На платформах Windows используйте & (амперсанд)

  • На платформах UNIX используйте ; (точка с запятой)

Либо задайте переменные среды перед запуском MATLAB.

Запуск программ UNIX вне системного пути

Программу UNIX можно запустить из MATLAB, если папка, содержащая этот файл, не находится в системном пути UNIX, видимом для MATLAB. Чтобы просмотреть путь, видимый для MATLAB, введите в командной строке MATLAB следующее.

getenv('PATH')

Можно изменить системный путь для текущего сеанса MATLAB или для последующих сеансов MATLAB, как описано в следующих разделах:

Текущий сеанс MATLAB

Можно изменить системный путь для текущего сеанса MATLAB. При перезапуске MATLAB папка больше не находится в системном пути.

Чтобы изменить системный путь, выполните одно из следующих действий.

  • Измените текущую папку в MATLAB на папку, содержащую программу, которую требуется запустить.

  • Введите в командной строке следующие команды.

    path1 = getenv('PATH')
    path1 = [path1 ':/usr/local/bin']
    setenv('PATH', path1)
    !echo $PATH 

Между сеансами MATLAB в текущем сеансе оболочки

Системный путь можно изменить в сеансе оболочки. При перезапуске MATLAB в текущем сеансе оболочки папка остается в системном пути. Однако при перезапуске сеанса оболочки и последующем перезапуске MATLAB папка больше не находится в пути.

Чтобы добавить папку в системный путь из оболочки, выполните следующие действия.

  1. Выйдите из MATLAB.

  2. В зависимости от используемой оболочки введите в командной строке системы одно из следующих значений: myfolder - это папка, содержащая программу, которую вы хотите запустить:

    • Для bash или связанная оболочка:

      export PATH="$PATH:myfolder"
      
    • Для tcsh или связанная оболочка:

      setenv PATH "${PATH}:myfolder"
      
  3. Запустите MATLAB.

  4. В окне команды MATLAB введите:

    !echo $PATH
    

Во всех сеансах MATLAB

Чтобы изменить системный путь между сеансами оболочки и MATLAB, добавьте следующие команды в файл запуска MATLAB, как описано в разделе Опции запуска в файле запуска MATLAB.

path1 = getenv('PATH')
path1 = [path1 ':/usr/local/bin']
setenv('PATH', path1)
!echo $PATH 

Запуск (Run) StartScript на macOS

На платформах macOS нельзя запускать программу Apple StartScript непосредственно из MATLAB. Чтобы запустить команды, вызывайте Apple macOS osascript использование функции MATLAB unix или ! (bang) функции.

См. также