我的$ SHELL是tcsh.我想运行ac shell脚本,它会多次调用程序,每次更改一些参数.我需要调用的程序是在Fortran中.我不想编辑它.程序只有在执行后才会获取参数,但不会在命令行中获取.在脚本中调用程序后,程序将获得控制权(这是我当前卡住的地方,我永远无法离开,因为脚本在程序进程停止之后才会执行任何操作); 此时我需要传递一些变量,然后经过几次迭代后我需要从程序中按ctrl-c继续编写脚本.
如何才能做到这一点?
要添加@Toybuilder所说的内容,您可以使用"here here".即你的剧本可以有
./myfortranprogram << EOF first line of input second line of input EOF
" <
EOF
" 之间的所有内容都将被输入到程序的标准输入中(Fortran是否还使用"read(5,*)"来读取标准输入?)
因为我认为@ ephemient的评论值得回答:
更多提示:<<'EOF'阻止了here-doc体中的插值; << - EOF删除所有前导标签(因此您可以缩进here-doc以匹配其周围环境),并且EOF可以被任何标记替换.空标记(<<"")表示在第一个空行处停止的here-doc.
我不确定这些是多么可移植,或者它们只是tcsh扩展 - 我自己只使用了<