シェルスクリプトを開発するのはなぜそれほど難しいのですか? 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