惜しみなく貸してください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
カップルの質問:
- それは何にぶら下がっていますか?
- 解決策は何ですか?
次は実行中です。
-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
最後の行の末尾に改行文字がありません。