这是我的简化脚本。
我想知道 proc() 是否可以知道它是直接运行还是通过跑步者运行。
#!/bin/bash
runner () {
"${@}"
}
proc() {
eval 'version=$(echo "SUCCESS: **** ${BASH_VERSION} ****")'
echo -e "$version";
return 0
}
runner proc
proc
你怎么看?
这是我的简化脚本。
我想知道 proc() 是否可以知道它是直接运行还是通过跑步者运行。
#!/bin/bash
runner () {
"${@}"
}
proc() {
eval 'version=$(echo "SUCCESS: **** ${BASH_VERSION} ****")'
echo -e "$version";
return 0
}
runner proc
proc
你怎么看?
proc
在您的示例中不是一个单独的过程。它只是一个函数,在与主 shell 相同的进程中运行。该
$FUNCNAME
数组使其可以访问其回溯:所以是的,它可以:
如果您尝试使用它,您会发现在子shell/子进程中运行它不会破坏回溯或以任何方式影响它: