如何从bash脚本中读取程序输入

时间:2015-02-08 19:03:56

标签: bash input command-line fortran

我使用bash脚本编译并运行程序。程序运行时,它会询问一些输入数据。如何让bash脚本为程序提供输入,以便我不在屏幕上手动完成。

这是我的剧本:

#!/bin/csh

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

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

谢谢

2 个答案:

答案 0 :(得分:0)

  1. 更改为bash。 #!/bin/bash
  2. 将您希望将其读取的值写入文件。
  3. 重定向文件中的标准输入

    ./ 1coupled< file_of_values

  4. 或者,阅读手册页“man 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
    

答案 1 :(得分:0)

我主要同意@bmargulies,但该函数使用的是gfortran的f77扩展名,应该避免使用。

当前的fortran有一种访问命令行参数的标准方法,名为GET_COMMAND_ARGUMENT

检查this