Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C Shell:如何使用非命令行参数执行程序?_Shell_Unix_Scripting_Csh - Fatal编程技术网

C Shell:如何使用非命令行参数执行程序?

C Shell:如何使用非命令行参数执行程序?,shell,unix,scripting,csh,Shell,Unix,Scripting,Csh,我的$SHELL是tcsh。我想运行一个c shell脚本,它会多次调用一个程序,每次都会更改一些参数。我需要调用的程序是Fortran语言。我不想编辑它。程序只在执行后接受参数,而不是在命令行上。在脚本中调用该程序时,该程序将获得控制权(这是我当前遇到的问题,我永远无法退出,因为在程序进程停止之前,脚本不会执行任何操作);在这一点上,我需要向它传递一些变量,然后经过几次迭代之后,我将需要将ctrl-c移出程序并继续使用脚本 如何做到这一点?不是tcsh用户,但是如果程序运行后通过stdin读入

我的$SHELL是tcsh。我想运行一个c shell脚本,它会多次调用一个程序,每次都会更改一些参数。我需要调用的程序是Fortran语言。我不想编辑它。程序只在执行后接受参数,而不是在命令行上。在脚本中调用该程序时,该程序将获得控制权(这是我当前遇到的问题,我永远无法退出,因为在程序进程停止之前,脚本不会执行任何操作);在这一点上,我需要向它传递一些变量,然后经过几次迭代之后,我将需要将ctrl-c移出程序并继续使用脚本


如何做到这一点?

不是
tcsh
用户,但是如果程序运行后通过
stdin
读入命令,那么您可以使用shell重定向
Uhm,您可以为Fortran代码提供重定向吗?您可以使用输入创建一个临时文件,然后使用stdin重定向将其导入(您想要使用的是。

要添加到@Toybuilder所说的内容中,您可以使用“here document”。即,您的脚本可以

./myfortranprogram << EOF
first line of input
second line of input
EOF

/myfortranprogram这是unix程序expect的一项工作,它可以友好、轻松地交互命令程序并响应它们的提示。

在被告知我的问题几乎与此问题重复后,我被派到了这里

FWIW,我在cshcshell脚本中遇到了类似的问题

这段代码允许在不获取任何输入参数的情况下执行自定义_命令:

foreach f ($forecastTimes)
    custom_command << EOF
        arg1=x$f;2
        arg2=ya
        arg3=z,z$f
        run
        exit
        EOF
end
foreach f($forecastTimes)

自定义命令哦,我忘了Expect!回答得很好!还有一些提示:不,事实证明,当你试图做只涉及编写代码的研究,而你所有的训练都只限于物理时,你会错过finner cs的细节。这是一种很多人都生活在其中的逆向编码方法。
foreach f ($forecastTimes)
    custom_command <<EOF
        arg1=x$f;2
        arg2=ya
        arg3=z,z$f
        run
        exit
EOF
end