2016-10-13 20 views
0

私は設定ファイルを使用しているシェルスクリプトを1つ持っています。私は設定ファイルを使うために次のコードを追加しました。bashスクリプトはnohupで動作していませんが、スタンドアローンとしてはうまく動作します

source abc.config 

このシェルスクリプトを手動で実行したときにうまくいきました。しかし、このシェルスクリプトをno hupを使ってバックグラウンドプロセスにすると、以下のエラーが出ます。

ライン19:ソース:abc.configは:私はそれが適切に設定値を取っていると、シェルスクリプトが働いていたデバッグでは

bash -x shell_script.sh 

を使用してシェルスクリプトをデバッグ

ファイルが見つかりません。

このシェルスクリプトは数日前に正常に動作していましたが、突然このようなエラーが発生しました。同じスクリプトが別の環境で正常に動作しています。

このシェルスクリプトを適切に実行するには、source文でconfigファイルのフルパスを指定する必要があります。しかし、これは正しい方法ではありません。設定ファイルとシェルスクリプトはどちらも同じフォルダにあり、ソース構文に対しては設定ファイル名だけを与えなければなりません。

この問題を解決するにはどうすればよいですか?

P.S:現在、

source ${path}/abc.config 

を次のように私は、configファイルのパスを追加している。しかし、私はそれをパスせずに設定ファイルをソースにしたいです。

答えて

0

"source ./abc.config"を試しても、同じフォルダを探している可能性があります。あなたは、スクリプトが実行されているにフォルダを検出変数にそれを保存して、ABCのプレフィックスとしてそれを使用することができ調達する前にモード/ environment--

を実行するの複雑さに応じて

、-OR、 .configのように

DIRN=`dirname $0` 
source $DIRN/abc.config 
+0

私はその解決策に従っていますが、私はsourceコマンドで設定ファイル名だけを使いたいと思います。私は.profile .bashrcを調べて手掛かりを見つけました。何も得られなかった。 – Vidya

関連する問題