gpt4 book ai didi

bash - 在 bash 脚本中获取调用者脚本的名称

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:24 26 4
gpt4 key购买 nike

假设我有 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/

26 4 0
文章推荐: c++ - 在 C++ 中转发声明枚举
文章推荐: java - 如何创建一对一的单例关系
文章推荐: c++ - 如何将第三方库添加到 QtCreator?
文章推荐: javascript - 用自定义图像替换