部分用户输入命令文件,部分用于fortran脚本的终端

时间:2014-09-16 02:15:57

标签: bash fortran

我有一个需要大量用户输入的fortran程序。我编写了一个命令文件来处理代码中的大多数read()语句。然而,在某些时候,fortran代码进入do循环,我希望读取()命令然后被引导到终端,以便我可以手动输入它们而不是从输入。命令文件。有这么便宜和讨厌的方法吗?

我目前使用here文档格式来提供代码中read()语句的答案,但我只是不确定如何从shell脚本切换.command脚本而不会终止程序。我在下面做了一个简单的例子来说明问题...

例如(fortran脚本)

{

program testcommand

write(*,*) 'enter a: '

read(*,*) a

write(*,*) 'enter b: '

read(*,*) b


write(*,*) a, b

end program

}

然后我使用命令文件

运行此脚本
{

gfortran gfrot.f90

./a.out <<< "

10

8

"

}

如果我想在脚本中指定a的值,然后在终端中指定b,这样的事情是可行的吗?

1 个答案:

答案 0 :(得分:0)

您可以嵌入一个命令替换,读取并输出一个值到这里的文档。

./a.out <<EOF
10
$(read X; echo "$X")
EOF

或者,您可以使用小脚本将Fortran程序直接写入标准输入,并在必要时调用read

{ echo 10;
  read B;
  echo "$B"; } | a.out