从csh脚本运行本地可执行文件时找不到命令

问题描述:

我当前的项目涉及到在八十年代中期使用在Fortran 77上编写的.go可执行文件。我目前唯一的访问权限是通过ssh到使用csh的服务器。我写了下面的脚本:从csh脚本运行本地可执行文件时找不到命令

set inpdir = $argv[1] 
mkdir ${inpdir}"_out" 
set j = 1 
while ($j <= 5) 
    set i = 0 
    while ($i <= 20) 
     "tms96-fnl.go <./"${inpdir}"/inp"${j}"0"${i}".d> ./"${inpdir}"_out/out"${j}"0"${i} 
     set i = i + 1 
    end 
    set j = j + 1 
end 

结果消息:

tms96-fnl.go <./fftf/inp100.d> ./fftf_out/out100 -Command not found 
Syntax error 

如果我是密钥消息的内容(没有的“指令找不到”),而在与按预期执行的脚本相同的工作目录。

+0

这就是您正在运行的脚本?它是如何在错误信息中显示的输入文件名末尾生成'.d'的? – lurker

+0

对不起。我不得不手动键入它,因为我使用的服务器非常紧密,而且我不能scp。上面编辑。 –

+0

我认为问题可能是引号的排列。您有''tms96-fnl.go <. inp> ./“$ {inpdir}”_ out/out“$ { j}“0”$ {i}'这可能被解释为看起来像“tms96-fnl.go <.> ./$ {inpdir}“_ out/out”$ { j}“0”$ {i}“' – lurker

问题是报价的安排。你有:

"tms96-fnl.go <./"${inpdir}"/inp"${j}"0"${i}".d> ./"${inpdir}"_out/out"${j}"0"${i} 

这将解释一个看起来像tms96-fnl.go <./的命令。我会这样做:

tms96-fnl.go < ./"${inpdir}"/inp"${j}"0"${i}".d > ./"${inpdir}"_out/out"${j}"0"${i}"