GNU/Linux >> Linux の 問題 >  >> Linux

qsubを使用してシェルスクリプトを実行すると、「予期しないファイルの終わり」および「関数定義のインポートエラー」エラーが発生する

を使用するラッパー スクリプトでもこの問題が発生します。
qsub -shell no -b yes -cwd -V somescript.bash arg1 arg2 etc

別の bash シェル スクリプトを送信するために使用する場合。それは迷惑を引き起こします

/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `BASH_FUNC_module'

(これは、CentOS 6.6 で実行されている Sun Grid Engine 211.11 です) 以下を (ラップされたスクリプトではなく) ラッパー スクリプトの上に置くだけで問題が解決することがわかりました:

unset module

それで全部です。


/usr/share/Modules/init/bash で、'export -f module' 行をコメントアウトしました。

通常のログイン シェルでは、modules.sh が profile.d から呼び出されるため、module コマンドを使用できます。非ログイン シェルでは、appwrapper スクリプトのように、最初に上記のファイルを読み込むだけです。

通常、アプリケーション スクリプトでは、上記のファイルをソースした後、追加のソースを意味するコマンド「module load apps/vendor/app」を再度指定します。

参照::- http://gridengine.org/pipermail/users/2011-November/002019.html


何らかの理由で、すべての行の最後にセミコロンを追加すると、問題が修正されました。


Linux
  1. 「でスクリプトを実行します。 」と「ソース」で?

  2. Sudoを介してSsh上でスクリプトファイルを実行しますか?

  3. wget vs curl:wget と curl を使用してファイルをダウンロードする方法

  1. Bash を使用してファイルを検索してコピーする

  2. 致命的:modprobe を使用したモジュールが見つからないというエラー

  3. カーネル モジュール パラメータの変更 (/sys/module を使用)

  1. Bashでは、いつエイリアスを作成し、いつスクリプトを作成し、いつ関数を作成するのですか?

  2. シェルスクリプトでファイルをコピーして上書きする

  3. teeを使用してSTDERRおよびSTDOUTをファイルにキャプチャする