11

私は次のシェルスクリプトを持っています:

#!/bin/sh
cd /sw/local/bin/
export LD_LIBRARY_PATH=/sw/local/lib:/usr/local/Trolltech/Qt-4.7.2/lib:$LD_LIBRARY_PATH
./FeatureFinderRaw -in /homes/JG-C1-18.mzML -out /homes/test_remove_after_use.featureXML -threads 20

自分のコマンドラインから実行すると正常に動作しますが、実行しようとすると次のようになります。

qsub -q ningal.q -cwd -V -o /homes/queue.out -e /queue.err featureFind_C1-18_20t.sh 

次のエラーが発生します。

/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libOpenMS.so: cannot open shared object file: No such file or directory
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
/bin/bash: module: line 1: syntax error: unexpected end of file
/bin/bash: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'
./FeatureFinderRaw: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `module'

qsubを使用しているときにこのエラーが発生する理由はわかりませんが、同じクラスターマシンでスクリプトを直接実行している場合はわかりません。qsubを使用してスクリプトを実行するにはどうすればよいですか?

4

5 に答える 5

11

を使用するラッパースクリプトでもこの問題が発生します

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'

(これはCentOS6.6で実行されているSunGrid Engine 211.11です)ラッパースクリプト(ラップされたスクリプトではない)の上に次のように配置するだけで問題が解決することがわかります。

unset module

それで全部です。

于 2014-11-25T15:30:14.513 に答える
6

/ usr / share / Modules / init / bashで、「export-fmodule」行をコメントアウトしました。

通常のログインシェルでは、modules.shがprofile.dから呼び出されるため、moduleコマンドを使用できます。ログイン以外のシェルでは、アプリラッパースクリプトのように、最初に上記のファイルを取得します。

一般に、上記のファイルをソーシングした後のアプリケーションスクリプトでは、コマンド「module load apps / vendor / app」が再び表示されます。これは、追加のソーシングを意味します。

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

于 2012-07-20T10:37:19.743 に答える
3

なんらかの理由で、すべての行の最後にセミコロンを追加すると問題が解決しました。

于 2012-05-08T13:38:17.263 に答える
1

以下のコマンドを〜/ .bash_profileまたは〜/ .bashrcファイルに追加してから、再度ログアウト/ログインします。

unset module
または、クイックコマンドを実行するだけです。
echo "unset module" >> ~/.bash_profile && source ~/.bash_profile
于 2019-01-09T02:29:46.940 に答える
0

最も可能性の高い原因は、セミコロンを追加することで違いが生じる場合に、POSIX行末(\ r)ではなくDOS行末(\ r \ n)でファイルを保存したことです。

于 2012-05-08T15:54:47.663 に答える