2015-02-08 43 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