2015-02-08 45 views
0

我使用bash脚本编译和运行程序。程序运行时会要求输入一些数据。我怎样才能让bash脚本为程序提供输入,这样我就不会在屏幕上手动执行它。如何从bash脚本读取程序输入

这里是我的脚本:

#!/bin/csh 

gfortran -o 1coupled AMAIN_C.FOR 
mv 1coupled ./chemi 
cd ./chemi 
./1coupled 

当程序运行时它会要求提供程序的名称,我必须在命令行输入。我想让它从bash脚本中读取它。

谢谢

+3

这不是一个bash脚本,它是一个csh脚本。 – bmargulies 2015-02-08 19:05:08

回答

0
  1. 更改为庆典。 #!/bin/bash
  2. 将您想要读取的值写入文件。
  3. 标准输入重定向从文件

    ./1coupled < file_of_values

,或者阅读man page “男人3F GETARG”,以了解更多有关检索命令行参数。

以下来自:the documentation

PROGRAM test_getarg 
     INTEGER :: i 
     CHARACTER(len=32) :: arg 

     DO i = 1, iargc() 
      CALL getarg(i, arg) 
      WRITE (*,*) arg 
     END DO 
     END PROGRAM 
0

我大多用@bmargulies同意,除了功能是使用gfortran的F77扩展名,应尽量避免。

当前Fortran有一个访问命令行参数的标准方式,名为GET_COMMAND_ARGUMENT

检查this