前提・実現したいこと
呼び出された子シェルの自身のパスを取得したいです。
ビルドに必要なシェルをまとめたparent.sh
とビルドの各ステップのchildren/n-child.sh
があり、
parent.sh
を実行しても、n-child.sh
を実行しても、同じようにn-child.sh
が自身のパスを取得できるようにしたいです。
発生している問題・エラーメッセージ
しかし、parent.sh
から呼び出したn-child.sh
でpwd
などを実行してもparent.sh
のあるディレクトリパスを示します。
$0
もparent.sh
を示してしまいます。
cd
してからn-child.sh
を実行すれば良いのは分かっているのですが、なるべくparent.sh
もシンプルにしたいと思っているため、できればcd
はやりたくありません。
該当のソースコード
❯ tree /tmp /tmp ├── children │ └── 01-child.sh └── parent.sh
sh
1# /tmp/parent.sh 2. ./children/01-child.sh
sh
1# /tmp/children/01-child.sh 2pwd 3echo $0 # 01-child.sh が出力されることを期待する
実行結果
❯ pwd /tmp ❯ ./parent.sh /tmp ./parent.sh ❯ cd children ❯ ./01-child.sh /tmp/children ./01-child.sh
回答3件
あなたの回答
tips
プレビュー