2012-04-26 3 views
2

私はtcshスクリプトをbashに翻訳しようとしています。このスクリプトは、このようgnuplotの呼び出し:私は単に「bashの」から「tcshの」を変更しようとしたtcshからbashに翻訳する

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

を、私はここでは、文書の行では、ファイルの終わりで区切らX」を取得(たかっ `EOF ') "どうしてこれなの ?

答えて

3

エラーメッセージのとおり、here文書を開始時に指定した文字列(この場合はEOF)で終了する必要があります。ここでは、ファイルの最後を使用してここの文書を終了することはできません。一例として、

が、ここで私はここにドキュメントを使用するスクリプトからの断片です:私はGPLOTとここにドキュメントを開始して以来

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

は、bashはここにドキュメントの終わりを示すためにGPLOTを探します。

+0

私はそれが何であるか分かりません。私は正確にするはずです。私は実際にエラーメッセージを理解していないので、私はここで最初に来たのです。スクリプトの最後に<< EOFと書かなければなりませんか?もしそうなら、それはtcshに必須ではないのはなぜですか? – bob

+1

@bob私は例を編集しました。 tcshに関しては、作成者がファイルの最後にこの文書の最後を示すことを許可したので、必要ではないとしか言​​えません。私はbashが異なるという技術的な理由を知りません。 –

+1

私はbashの方法を知っている。私はそれがシンプルな "特殊なケースはルールを破るのに十分ではない"と思う。 – mgilson

関連する問題