2012-04-26 58 views
2

我正在尝试将tcsh脚本翻译成bash。这个脚本调用gnuplot的是这样的:从tcsh翻译成bash问题

#!/bin/tcsh 
<script commands> 
gnuplot << EOF 
set terminal png 
<other commands> 
plot <args> 

我想只需要修改“tcsh的”到“庆典”,但我得到“这里的文档在行由x档案结尾分隔(想'EOF') ”。为什么是这样 ?

回答

3

正如错误信息所示:您需要在开始时给出的字符串结尾,在这种情况下,EOF。您不能仅仅使用文件的结尾来终止这里的文档。

作为一个例子,这里是从那里我用了这里的文档的脚本片段:

/usr/bin/gnuplot << GPLOT 
set terminal png 
set output "$3" 
set logscale xy 
set xlabel "$1" 
set ylabel "$2" 
plot "tmp2.$$" notitle 
GPLOT 

自从我开始了在这里的文档与GPLOT,庆典查找GPLOT指示此文档的末尾。

+0

对不起,我不明白我应该怎么做。我其实并不理解错误信息,这就是我第一次来到这里的原因。我应该在脚本的末尾写上“EOF”吗?如果是这样,为什么它不需要tcsh? – bob 2012-04-26 12:55:19

+1

@bob我在一个例子中编辑过。至于tcsh,我只能说它不是必需的,因为它的创建者决定允许文件末尾指示这里doc的结尾;我不知道bash有什么不同,如果有的话。 – 2012-04-26 13:05:01

+1

我推荐bash的方式。我认为这是一个简单的“特殊案例不足以打破规则”的思维...... – mgilson 2012-04-26 13:30:26