从子脚本获取父脚本名称

从子脚本获取父脚本名称

CentOS/RHEL 7. GNU bash,版本 4.2.46(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

作为脚本的第一行。

(我年纪越大,我就越好)。

相关内容