サブスクリプトから親スクリプト名を取得する

サブスクリプトから親スクリプト名を取得する

CentOS/RHEL 7. GNU bash, バージョン 4.2.46(2)-リリース

2つのbashスクリプトがあり、これをparent.shとchild.shと呼びます。両親は子供をこう呼びます。

# parent.sh
./child.sh

child.shで親スクリプトの実際の名前を見たいです。 /procから情報を取得しようとしますが、常に「-bash」のみが返されます。以下はchild.shの例です。

# child.sh
echo "My process ID is: $$"
echo "or is it $BASHPID"
echo "My Parent ID is: $PPID"
echo "Par Cmd: " `cat /proc/$PPID/cmdline`
PARENT=$(ps -o args= $PPID)
echo "Or is it: " $PARENT 


echo "Press any key to continue..........."
read x

parent.shを実行すると、次のようになります。

$ ./parent.sh 
$ ./parent.sh 
My process ID is: 14634
or is it 14634
My Parent ID is: 14633
Par Cmd:  -bash
Or is it:  -bash
Press any key to continue...........

私が知る必要があるのは、child.shを呼び出すスクリプトの実際の名前です。 「parent.sh」の(少なくとも一部)を見たいです。

誰もが正しい方向に私を指すことができますか?

ありがとう

ベストアンサー1

自分で解決しました。やるべきことは入れておくだけです。

#!/bin/bash

スクリプトの最初の行に。

(年齢が上がるほど良くなります。)

おすすめ記事