0

最近、いくつかの bash スクリプトに取り組んでいますが、より大きなスクリプトをどのようにセットアップする必要があるのか​​疑問に思い始めています。

bash スクリプトは常に現在のディレクトリで実行されるため、使用sourceするにはソース スクリプトの絶対パスが必要です。

この投稿を見ましたが、一般的なユースケースであると予想していたものには複雑すぎるようです。

実行中のスクリプトと同じディレクトリにスクリプトをソースする慣用的な方法はありますか?

4

2 に答える 2

3

とを使用dirname$0て、現在実行中のスクリプトの場所を特定できます (ここで doit2.sh は、元のスクリプトと同じディレクトリにあるスクリプトです)。

. $(dirname $0)/doit2.sh
于 2013-11-04T02:51:07.157 に答える
2

36,000 のソリューションはありません。

1) 絶対パス:

source /absolute_path/script.sh # sourcing a script
. /absolute_path/script.sh # sourcing a script
/absolute_path/script.sh # executing a script

2) 相対パス:

./script.sh # when script.sh is in the current directory
./dir/script.sh # when script.sh is in the directory 'dir' which is in the current directory
../script.sh # when script.sh is in the parent directory

また、sourceまたは. script.sh相対パスでも使用できます。

3) エイリアスを使用:

echo "alias script='/absolute_path/script.sh'" >> ~/.bashrc
source ~/.bashrc
script # executing script.sh

4) PATH に追加:

echo "export PATH=$PATH:/absolute_path/script.sh" >> ~/.bashrc
source ~/.bashrc
script.sh # executing script.sh

また、スクリプトのソースとスクリプトの実行の違いについては、この件名を参照してください。

于 2013-11-03T23:05:23.173 に答える