gpt4 book ai didi

bash - 将 Fortran 程序输出到变量中

转载 作者:行者123 更新时间:2023-11-29 09:13:47 24 4
gpt4 key购买 nike

我有一个交互式 FORTRAN 程序,需要用户进行各种输入。现在,我想将这个 Fortran 程序的输出存储到一个变量中,并在 shell 脚本中使用这个值。我试过了

 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

我相信有一些非常微不足道的东西是我找不到的。请帮我。

附言这只是一个示例代码和脚本,我的实际脚本和代码大不相同。

最佳答案

让-弗朗索瓦·法 bool 是对的。

program test 
character*1 resp1, resp3
integer resp2, ans

write(0,*) 'Think of a prime number less than 10'
write(0,*) 'Say whether it is odd or even'
write(0,*) 'Write o/e'
read(5,*) resp1
if ( resp1 .EQ. 'e' ) then
ans=2
else
write(0,*) 'Is the number close to 4 or 8'
read (5,*) resp2
if ( resp2 == 8 ) then
ans=7
else
write(0,*) 'Is the number greater than or less than 4'
write(0,*) 'Write g or l'
read (5,*) resp3
if ( resp3 .EQ. 'l' ) then
ans=3
else
ans=5
end if
end if
end if
write(6,*) ans
end

问题是stderr(0),答案是stdin(5),结果是stdout(6)

var=`./test`

在那之后工作正常。

关于bash - 将 Fortran 程序输出到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40239423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com