bashスクリプトで$ PWDを操作するのに問題があります...
同じディレクトリに2つのスクリプトがあります。
~/outer.sh, ~/inner.sh
。私はouter.sh
これを次のように呼ぶのに慣れています。inner.sh
(outer.shの内容は以下の通り)
#!/bin/bash
$PWD/inner.sh
しかし、これはうまくいかないようです。さらなる調査によると、$ PWDをここで使用しているので、アクセスできないように見え(何も表示されませんprintf $PWD >> logfile.txt
)、スクリプトからスクリプトを呼び出すことに関連していると思われます...ここで何が起こっているのかを明確にすることができます人はいますか?
答え1
$PWD
スクリプトを含むディレクトリではなく、現在のディレクトリです。inner.sh
現在ディレクトリにある理由はありません。
スクリプトパスはに保存されます$0
。そのディレクトリ部分を抽出して、スクリプトを含むディレクトリを見つけることができます。
script_directory=$(dirname -- "$0")
"$script_directory/inner.sh"