Bashスクリプトエラー:スクリプト自体のディレクトリを見つけようとしたときに予期しないファイルの終わりが発生しました。

Bashスクリプトエラー:スクリプト自体のディレクトリを見つけようとしたときに予期しないファイルの終わりが発生しました。

惜しみなく貸してくださいStackOverflow 回答、相対パスを使用してログイン時にロードできるように、スクリプトが実行されているディレクトリを探したいと思います。

今スクリプトは非常に小さいです。

SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
DIR=$( cd -P "$( dirname "$SOURCE" )" && pwd )

ただし、ログインまたは電話をかけると、次のメッセージがsource <this_script.sh>表示されます。

-bash: script.sh: line 4: syntax error: unexpected end of file

カップルの質問:

  1. それは何にぶら下がっていますか?
  2. 解決策は何ですか?

次は実行中です。

-bash-3.2$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.

編集1:

Jillのソリューションをお試しください。

parent="$(dirname "$SOURCE")"
echo "PARENT IS $parent"
DIR="$(cd -P "$parent" && pwd)"
echo "DIR IS $DIR"

sourceログインしようとしたりログインしたりすると、次のメッセージが表示されます。

Last login: Mon Mar 12 08:07:13 2012 from ....
PARENT IS .
: No such file or directory
DIR IS
: command not found
: command not found
: command not found
: command not found

ベストアンサー1

最後の行の末尾に改行文字がありません。

おすすめ記事