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 должно быть заменено полным путем и именем вашего двоичного файла Octave). Обратите внимание, что это сработает только в том случае, если ‘#!’ находится в самом начале файла. После того, как вы сделаете файл исполняемым (с помощью команды chmod в системах Unix), вы можете просто набрать:
hello
в оболочке, и система организует запуск Octave так, как если бы вы набрали:
octave hello
Строка, начинающаяся с ‘#!’, перечисляет полный путь и имя файла интерпретатора, который будет запущен, и необязательный начальный аргумент командной строки для передачи этому интерпретатору. Затем операционная система запускает интерпретатор с указанным аргументом и полным списком аргументов исполняемой программы. Первый аргумент в списке — это полное имя файла исполняемого файла Octave. Остальная часть списка аргументов будет либо параметрами Octave, либо файлами данных, либо тем и другим. Параметры ‘-qf’ обычно указываются в автономных программах Octave, чтобы предотвратить вывод обычного стартового сообщения и чтобы они не вели себя по-разному в зависимости от содержимого файла ~/.octaverc конкретного пользователя. См. Вызов Octave из командной строки.
Обратите внимание, что некоторые операционные системы могут ограничить количество символов, распознаваемых после ‘#!’. Кроме того, аргументы, появляющиеся в строке ‘#!’, анализируются различными оболочками/системами по-разному. Большинство из них объединяют все аргументы вместе в одну строку и передают ее интерпретатору как один аргумент. В этом случае следующий скрипт:
#! octave-interpreter-name -q -f # comment
эквивалентен вводу в командной строке:
octave "-q -f # comment"
что выведет сообщение об ошибке. К сожалению, Octave не может определить, был ли он вызван из командной строки или из скрипта ‘#!’, поэтому при использовании механизма ‘#!’ требуется определенная осторожность.
Примечания
(1)
Механизм ‘#!’ работает в системах Unix, производных от Berkeley Unix, System V Release 4, и некоторых системах System V Release 3.
© 1996–2023 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/v9.2.0/Executable-Octave-Programs.html