Ich habe ein interaktives FORTRAN-Programm, das verschiedene Eingaben vom Benutzer erfordert. Jetzt möchte ich die Ausgabe dieses Fortran-Programms in einer Variablen speichern und diesen Wert in einem Shell-Skript verwenden. Ich habe versuchtAusgabe eines Fortran-Programms in eine Variable
var=`./test` and var=$(./test)
, aber in beiden Fällen, es fordert den Benutzer nicht zur Eingabe auf und bleibt im Leerlauf. Was soll ich machen? Ein Stück Beispiel Fortran-Code ist wie folgt
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
Dann habe ich ein Skript wie diese
test.sh
var=`./test`
echo "The answer you are looking for is " $var
Ich glaube, es ist etwas sehr trivial ist, dass ich nicht in der Lage bin zu finden. Bitte hilf mir.
P.S. Dies ist nur ein Beispiel Code und Skript und mein tatsächliches Skript und Code ist sehr unterschiedlich.
Eingabeaufforderung und Variablenausgabe werden zusammengeführt. Nicht sicher, ob das möglich ist, aber könnten Sie den Benutzer anstelle der Standardausgabe auf Standardfehler hinweisen? Das würde funktionieren. –
Lass mich es versuchen. Meinst du mit $? ? –
Ich ermutige Sie sehr, stattdessen Fortran zu schreiben. Siehe: http://www.fortran90.org/src/best-practices.html – jlokimlin