2.6 Выполняемые программы Octave
После того, как вы освоите Octave, вы можете захотеть написать автономные скрипты Octave, используя механизм скриптов ‘#!’. Вы можете сделать это в системах GNU и во многих системах Unix 1.
Автономные скрипты Octave полезны, когда вы хотите написать программу, которую пользователи могут вызывать, не зная, что программа написана на языке Octave. Скрипты Octave также используются для пакетной обработки файлов данных. После того, как алгоритм был разработан и протестирован в интерактивной части Octave, он может быть включён в исполняемый скрипт и использоваться снова и снова с новыми файлами данных.
В качестве тривиального примера исполняемого скрипта Octave вы можете создать текстовый файл с именем hello, содержащий следующие строки:
(где octave-interpreter-name следует заменить полным путем и именем вашего двоичного файла Octave). Обратите внимание, что это будет работать только в том случае, если ‘#!’ появляется в самом начале файла. После того, как файл станет исполняемым (с помощью команды chmod в системах Unix), вы можете просто набрать:
в оболочке, и система организует запуск Octave так, как если бы вы набрали:
Строка, начинающаяся с ‘#!’, перечисляет полный путь и имя интерпретатора, который должен быть запущен, и необязательный начальный аргумент командной строки для передачи этому интерпретатору. Затем операционная система запускает интерпретатор с указанным аргументом и полным списком аргументов исполняемой программы. Первый аргумент в списке – это полное имя файла исполняемого файла Octave. Остальная часть списка аргументов будет либо опциями для Octave, либо файлами данных, либо тем и другим. Опции ‘-qf’ обычно указываются в автономных программах Octave, чтобы предотвратить вывод обычного начального сообщения и чтобы они не вели себя по-разному в зависимости от содержимого файла ~/.octaverc конкретного пользователя. Смотрите Вызов Octave из командной строки.
Обратите внимание, что некоторые операционные системы могут устанавливать ограничение на количество символов, которые распознаются после ‘#!’. Кроме того, аргументы, отображаемые в строке ‘#!’, анализируются различными оболочками/системами по-разному. Большинство из них объединяют все аргументы в одну строку и передают её интерпретатору как один аргумент. В этом случае следующий скрипт:
эквивалентен вводу в командной строке:
что выведет сообщение об ошибке. К сожалению, 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/v6.4.0/Executable-Octave-Programs.html