我有一个 bash 脚本,它使用命令行参数调用/调用子脚本。如何强制子脚本在与调用者相同的 PID 下运行?
或者,获取子脚本:
#!/bin/sh
echo one.sh: pid is "$$"
. ./two.sh
echo done with "$0"
Run Code Online (Sandbox Code Playgroud)
(命令与中.完全相同,但更便携)sourcebash.
echo two.sh: pid is "$$"
Run Code Online (Sandbox Code Playgroud)
示例运行:
$ ./one.sh
one.sh: pid is 31290
two.sh: pid is 31290
done with ./one.sh
Run Code Online (Sandbox Code Playgroud)
该脚本two.sh将在与 相同的 shell 环境中运行one.sh,并且 shell 不会生成新进程来运行它。它的行为非常类似于调用 shell 函数,但方式不止一种(例如,使用return而不是从早期exit返回控制权;将完全退出 shell 会话)。two.shone.shexit