Spec-Zone.ru › Octave 8

2.6 Выполняемые программы Octave

После изучения Octave вы можете захотеть написать автономные скрипты Octave, используя механизм скрипта «#!». Это можно сделать в системах GNU и во многих системах Unix 1.

Автономные скрипты Octave полезны, когда вы хотите написать программу, которую пользователи могут вызвать, не зная, что программа написана на языке Octave. Скрипты Octave также используются для пакетной обработки файлов данных. После разработки и тестирования алгоритма во взаимодействующей части Octave его можно закрепить в исполняемом скрипте и использовать снова и снова с новыми файлами данных.

В качестве тривиального примера исполняемого скрипта Octave вы можете создать текстовый файл с именем hello, содержащий следующие строки:

#! octave-interpreter-name -qf
# a sample Octave program
printf ("Hello, world!\n");

(где octave-interpreter-name должен быть заменен полным путем и именем вашего двоичного файла Octave). Обратите внимание, что это сработает только в том случае, если «#!» находится в самом начале файла. После того, как файл станет исполняемым (с помощью команды chmod в системах Unix), вы можете просто ввести:

hello

в командной строке, и система организует запуск Octave так, как будто вы ввели:

octave hello

Строка, начинающаяся с «#!», указывает полный путь и имя файла интерпретатора, который должен быть запущен, и необязательный начальный аргумент командной строки для передачи этому интерпретатору. Затем операционная система запускает интерпретатор с заданным аргументом и полным списком аргументов исполняемой программы. Первый аргумент в списке — полное имя файла исполняемого файла Octave. Остальная часть списка аргументов будет либо параметрами Octave, либо файлами данных, либо тем и другим. Параметры «-qf» обычно указываются в автономных программах Octave, чтобы предотвратить вывод обычного сообщения об инициализации и чтобы они не вели себя по-разному в зависимости от содержимого файла ~/.octaverc конкретного пользователя. См. Вызов Octave из командной строки.

Обратите внимание, что некоторые операционные системы могут ограничить количество символов, распознаваемых после «#!». Кроме того, аргументы, указанные в строке «#!», различными оболочками/системами обрабатываются по-разному. Большая часть из них объединяет все аргументы в одну строку и передает ее интерпретатору как один аргумент. В этом случае следующий скрипт:

#! octave-interpreter-name -q -f # comment

эквивалентен вводу в командной строке:

octave "-q -f # comment"

что приведет к сообщению об ошибке. К сожалению, Octave не может определить, был ли он вызван из командной строки или из скрипта «#!», поэтому при использовании механизма «#!» требуется определенная осторожность.

  • Передача аргументов исполняемым скриптам
  • Скрипты двойного назначения и функции Octave

Примечания

(1)

Механизм «#!» работает в системах Unix, производных от Berkeley Unix, System V Release 4 и некоторых системах System V Release 3.

© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v7.2.0/Executable-Octave-Programs.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API