我有一个fortran程序,我通常使用命令脚本,例如,在我写的终端中:
$程序
然后我进入程序(终端显示“$ program>”)并接受命令或我通过手动输入“@script”调用的脚本:
$程序> @Script
然后fortran程序打开名为“script”的文件,其中包含一系列执行的命令或任务 .
我现在要做的是直接在终端输入:$ program @script
使用文件“script”中包含的命令运行程序 .
我想这样做是为了能够创建sh脚本多次运行程序,而无需每次手动编写每个脚本的名称进入程序 .
有谁知道我怎么能在fortran做这件事 . 我想方法是启动fortran程序,说如果在程序名称之后在终端中输入了某些东西,那么fortran程序应该能够读取它并在内部使用它 . 无论在输入“program”后给出哪种类型的变量,程序都应该能够直接从终端读取它 . 任何想法将不胜感激 .
提前致谢 .
2 回答
你可以这样做:
详细信息可能略微取决于您编写的shell,以及您尝试运行的程序的详细信息 .
此外,这是一个shell脚本问题,与Fortran没有多大关系 .
Fortran 2003定义了一些内在函数,允许您检索提供给可执行文件的命令行参数 .
您感兴趣的功能是
get_command_argument
,command_argument_count
和get_command
.get_command检索整个命令行 .
command_argument_count返回一个整数,其中包含在命令行上传递的参数数量 .
get_command_argument获取在命令行上传递的第n个参数 .
请注意,这是您需要添加到Fortran程序的功能,如果您无法重新编译它,那么您无法使用此方法来完成此工作 .
在无法修改Fortran的情况下,您可以使用expect等程序,它可以让您自动输入提供提示的程序 .