我在终端上运行fortran77程序
./program程序要求输入和输出文件。当我在一个文件中有输入和输出文件的名字时,我应该写什么?我想为文件中的所有行运行带有名称的程序。
或者-如何使用参数之类的输入信息来运行程序?
或者如何在脚本中直接写文件名?而不是
READ(+,'(A)') OUT发布于 2019-10-13 16:31:40
我制作了以下程序文件prog.f
program test
character IN*30,OUT*30,line*80
PRINT *,'Input file '
READ(*,'(A)') IN
OPEN(1,FILE=IN,STATUS='OLD')
PRINT *,'Output file?'
READ(*,'(A)') OUT
OPEN(2,FILE=OUT,STATUS='NEW',BLANK='ZERO')
read (1,'(a80)') line
write (2,*) "I read ", line
end编译并链接到
gfortran prog.f -o prog我将文本字符串放入输入文件中。
echo "Hello World" > in然后,我将输入文件in和输出文件out的名称发送给程序。
$ <<< 'in
out' ./prog
Input file
Output file?并检查输出文件。
$ cat out
I read Hello World <<<在bash工作。你可能更喜欢来自echo的管道,它更便携,
$ rm out
rm: remove normal file 'out'? y
$ echo 'in
out' | ./prog
Input file
Output file?
$ cat out
I read Hello World 发布于 2019-10-13 15:18:49
如果你幸运的话也许
outfile会起作用的。重定向给文件截取者。选项/论点?
我们地球人写的东西就像..。
$ <77in cat >77.out
$ cat 77in >77.out(这只将77in复制到77.out)
...this Fortran77程序/命令希望它的操作数行在一个输入文件/流中:
$ <77.io cat
77in
77.out现在,如果cat是其他东西,它将把第一行解析为输入文件(包含“hello\n nworld”)。和第二个要创建的文件。
这只是新的,简单的方式.
而不是像cp -a dir1 dir2 dest这样的长参数列表,而是。
但是,您需要一个额外的file...just,就像现代cpio所做的那样:
files.cpio。当然,cpio只需要STDIN的线型:
find . | cpio -o >files.cpio
(cpio具有这种特殊的调用语法,因为它具有处理许多文件的功能。它是one命令和半个。tar也是一样,以不同的方式)
如果有什么是unix的典型,那么它就是在将控制和数据添加到shell中的命令方面的灵活性。正如我所评论的:好Q毕竟!(接受答案!)
https://unix.stackexchange.com/questions/546596
复制相似问题