2

複数のbashファイルがあります。現在のディレクトリに必要なすべての bash ファイルを含むマスター bash ファイルを作成したいと考えています。私はこのようにしてみました

#!/bin/bash
HELPER_DIR=`dirname $0`
.$HELPER_DIR/alias

しかし、 $HOME/.bashrc に次の行を入れると、

if [ -f /home/vivek/Helpers/bash/main.bash ]; then
    . /home/vivek/Helpers/bash/main.bash
fi

エラー no such file ./alias が表示されます。ファイルエイリアスがあります。相対 bash ファイルを含めるにはどうすればよいですか?

4

3 に答える 3

2

$( dirname "${BASH_SOURCE[0]}" )代わりに使用してください。

これらの2行を2つ追加しました~/.bashrc

echo '$0=' $0
echo '$BASH_SOURCE[0]=' ${BASH_SOURCE[0]}

そしてbashを開始しました:

$ bash
$0= bash
$BASH_SOURCE[0]= /home/igor/.bashrc

source(or .) または in でスクリプトを開始する場合、$0 と $BASH_SOURCE には違いがあります~/.bashrc

于 2012-07-26T18:46:48.843 に答える
1

「ドット」の後にスペースを残す必要があります

. $HELPER_DIR/alias
于 2012-07-26T18:48:39.447 に答える