У меня есть интерактивная программа FORTRAN, которая требует различных входных данных от пользователя. Теперь я хочу сохранить вывод этой программы Fortran в переменную и использовать это значение в сценарии оболочки. Я пробовалВыход программы 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