fortran: введите "исполняемый @script" в терминале, чтобы запустить программу, используя скрипт

У меня есть программа на фортране, в которой я обычно использую сценарии команд, например, в терминале, который я пишу:

$ программа

затем я вхожу в программу (терминал показывает "$program>") и принимает либо команды, либо скрипт, который я вызываю, набрав вручную "@script":

$ Программа>@script

Затем программа на Фортране открывает файл с именем "script", который содержит серию команд или задач, которые выполняются.

То, что я хочу сделать сейчас, это набрать непосредственно в терминале: $program @script

запустить программу с помощью команд, содержащихся в файле "скрипт".

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

Кто-нибудь знает, как я мог сделать это в Фортране. Я предполагаю, что способ состоит в том, чтобы запустить программу на языке Fortran, сказав, что если что-то было напечатано в терминале после названия программы, то программа на языке Fortran должна иметь возможность прочитать ее и использовать ее внутренне. Независимо от того, какой тип переменной указан после ввода "program", программа должна иметь возможность считывать ее непосредственно из терминала. Любая идея будет принята с благодарностью.

Заранее спасибо.

2 ответа

Вы можете сделать это:

program <<EOF
@script
EOF

Детали могут немного зависеть от того, в какой оболочке вы пишете сценарий, и от деталей программы, которую вы пытаетесь запустить.

Кроме того, это вопрос сценариев оболочки, мало связанный с Фортраном.

Fortran 2003 определяет некоторые встроенные функции, которые позволяют вам получить аргументы командной строки, предоставленные вашему исполняемому файлу.

Интересующие вас функции: get_command_argument, command_argument_count а также get_command,

get_command извлекает всю командную строку.
command_argument_count возвращает целое число с количеством аргументов, переданных в командной строке.
get_command_argument возвращает n-й аргумент, передаваемый в командной строке.

Обратите внимание, что это функциональность, которую вам нужно добавить в вашу программу на Фортране, и если у вас нет возможности перекомпилировать ее, вы не сможете выполнить эту работу, используя этот подход.

В случае, если модификация Фортрана невозможна, вы можете использовать такие программы, как ожидаемая, которые позволяют автоматизировать ввод в программы, предоставляющие подсказки.

Другие вопросы по тегам