我有一个交互式FORTRAN程序,需要来自用户的各种输入。现在,我想将此Fortran程序的输出存储到变量中,并在shell脚本中使用此值。我试过将Fortran程序输出到变量中
var=`./test` and var=$(./test)
但是在这两种情况下,它都不会提示用户输入并保持空闲状态。我该怎么办? 一块的例子Fortran代码是这样的
test.f
program test
character*1 resp1, resp3
integer resp2, ans
write(*,*) 'Think of a prime number less than 10'
write(*,*) 'Say whether it is odd or even'
write(*,*) 'Write o/e'
read(*,*) resp1
if (resp1 .EQ. 'e') then
ans=2
else
write(*,*) 'Is the number close to 4 or 8'
read (*,*) resp2
if (resp2 == 8) then
ans=7
else
write(*,*) 'Is the number greater than or less than 4'
write(*,*) 'Write g or l'
read (*,*) resp3
if (resp3 .EQ. 'l') then
ans=3
else
ans=5
end if
end if
end if
write(*,*) ans
end
Compiled as gfortran test.f -o test
然后我用一个这样的脚本
test.sh
var=`./test`
echo "The answer you are looking for is " $var
我相信有一些很琐碎,我无法找到。请帮帮我。
P.S.这只是一个示例代码和脚本,而我的实际脚本和代码则完全不同。
提示输出和变量输出合并。不知道这是否可能,但你能提示用户标准错误而不是标准输出吗?这将工作。 –
让我试试。你的意思是使用$? ? –
我强烈建议您编写自由格式的Fortran。请参阅:http://www.fortran90.org/src/best-practices.html – jlokimlin