假设我有 3 个 shell 脚本:
script_1.sh
#!/bin/bash
./script_3.sh
script_2.sh
#!/bin/bash
./script_3.sh
问题是在 script_3.sh
中我想知道调用者脚本的名称。
这样我就可以对我支持的每个来电者做出不同的回应
请不要假设我问的是 $0
因为 $0
每次都会回显 script_3
无论是谁来电者
这是一个带有预期输出的示例输入
./script_1.sh
应该回显script_1
./script_2.sh
应该回显script_2
./script_3.sh
应该回显user_name 或 root 或任何东西以区分这 3 种情况
?
这可能吗?如果可能,如何实现?
这将被添加到一个 rm
修改过的脚本中...所以当我调用 rm
时它会做一些事情,当 git
或任何其他 CLI 工具使用 rm
不受修改影响
最佳答案
根据@user3100381 的回答,这里有一个更简单的命令来获得我认为应该相当便携的相同内容:
PARENT_COMMAND=$(ps -o comm= $PPID)
将 comm=
替换为 args=
以获得完整的命令行(命令 + 参数)。 =
单独用于抑制 header 。
参见:http://pubs.opengroup.org/onlinepubs/009604499/utilities/ps.html
关于bash - 在 bash 脚本中获取调用者脚本的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42020910/