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-й аргумент, передаваемый в командной строке.
Обратите внимание, что это функциональность, которую вам нужно добавить в вашу программу на Фортране, и если у вас нет возможности перекомпилировать ее, вы не сможете выполнить эту работу, используя этот подход.
В случае, если модификация Фортрана невозможна, вы можете использовать такие программы, как ожидаемая, которые позволяют автоматизировать ввод в программы, предоставляющие подсказки.