0

このスクリプトを取得していunexpected end of file on line 27ます。このスクリプトは作成していませんが、/ etc / profileフォルダーに表示され、BASHシェルコンソールの環境変数を設定するために実行されているようです。そのため、新しいコンソールを起動するたびに、このエラーが発生します。これは煩わしいことです。

誰かが私が問題を理解するのを手伝ってもらえますか?2つのスクリプトがあります...両方ともcシェルスクリプト(* .csh)です

これが私に最初のエラー(libglib2.csh)を与える最初のものです:

#! /bin/csh
#
# Description:  This script sets the environment variables G_FILENAME_ENCODING
# and G_BROKEN_FILENAMES for the glib-2.0 library.
#
# G_FILENAME_ENCODING
#       This environment variable can be set to a comma-separated list of
#       character set names.  GLib assumes that filenames are encoded in the
#       first character set from that list rather than in UTF-8.  The special
#       token "@locale" can be used to specify the character set for the
#       current locale.
#
# G_BROKEN_FILENAMES
#       If this environment variable is set, GLib assumes that filenames are
#       in the locale encoding rather than in UTF-8.

# If the LANG you have set contains any form of "UTF", we will guess you are
# using a UTF-8 locale.  Hopefully we're correct.
echo $LANG | grep -iq UTF
if ($status==0) then
  setenv G_FILENAME_ENCODING "@locale"
endif

# It doesn't hurt to export this since G_FILENAME_ENCODING takes priority
# over G_BROKEN_FILENAMES:
setenv G_BROKEN_FILENAMES 1

これが2つ目で、エラー(qt4.csh)も発生します。

#! /bin/csh
# Environment path variables for the Qt package:
if (! $?QT4DIR ) then

# It's best to use the generic directory to avoid
# compiling in a version-containing path:
if ( -d /usr/lib/qt ) then
    set path "QT4DIR /usr/lib/qt"
else
    # Find the newest Qt directory and set $QT4DIR to that:
    foreach qtd "/usr/lib/qt-*"
        if (-d $qtd ) then 
            setenv QT4DIR $qtd 
        endif
    end
endif
endif

set path = $path "$QT4DIR /bin"
if ( $?CPLUS_INCLUDE_PATH ) then
export CPLUS_INCLUDE_PATH $QT4DIR/include:$CPLUS_INCLUDE_PATH
else
export CPLUS_INCLUDE_PATH $QT4DIR/include
endif
exit

これらのスクリプトには、対応するBourneシェルスクリプトが関連付けられているようですが、コンソールからエラーが発生し、.cshファイルにエラー(予期しないファイルの終わり)があることを通知するだけです。コンソールターミナルウィンドウを起動したときに、.shスクリプトについて何も報告されません。

私はUnixスクリプティングとシェルプログラミングに不慣れであり、スクリプトのどこかで(私にとって)小さなあいまいなフォーマットの間違いがあると感じています。

4

1 に答える 1

0

#!/bin/cshこれらのスクリプトは、 (より適切な形式である) で始まるので、呼び出されるたびに#!/bin/csh -f常に独自のシェル起動ファイル (.cshrcまたはホーム ディレクトリ内) を実行します。.tcshrc

2 つの無関係なスクリプトでエラーが発生した場合、これらのスクリプトに共通するのは、おそらく独自のドット ファイルです。-f最初に各スクリプトの最初の行に追加して、これで問題が解決するかどうかを確認します。次に、独自のファイルで構文エラーを調べます。

于 2012-07-15T21:31:02.170 に答える