現在のスクリプトと同じディレクトリにあるスクリプトを実行するには?

現在のスクリプトと同じディレクトリにあるスクリプトを実行するには?

シェルスクリプトを開発するのはなぜそれほど難しいのですか? NodeJSでは簡単に次のことができます。

require('./script')

そして常にscript現在のスクリプトに基づいている必要があります。しかし、シェル/バッシュで試してみると:

./script.sh

cwd()にpwd関連するスクリプトを見つけます。予想通り、ドットは現在のスクリプトがあるディレクトリではなくcwd()を意味するようです。pwd

line 8: ./script.sh: No such file or directory

スクリプトが現在実行されているディレクトリに基づいてスクリプトを実行するには?

頑張りました

/bin/bash script.sh

しかし、エラーが発生します。

/bin/bash: script.sh: No such file or directory

それから試しました。

script.sh

このエラーが発生します

line 8: script.sh: command not found

次の回避策だけが正常に動作しますが、問題は読めないことです。

$("$(dirname "$(realpath "$0")")/script.sh")

ベストアンサー1

スクリプトディレクトリを取得する別の変形:

DIR="$(cd "$(dirname "$0")" && pwd)"

その後、スクリプトを呼び出すことができます。

$DIR/script.sh

おすすめ記事