我正在尝试一个简单的测试来从脚本自身内部终止脚本。它似乎不起作用。
function testKill
{
PID=$$
kill $PID
echo hello!
}
当我运行这个函数时,
[....]$ testKill
hello!
它显然不会终止该进程。如何在发送 echo 命令之前使进程终止?
当我将这一切移至外部脚本中时,如果我直接从命令行调用脚本,它会正确终止。但是,如果我在 .bash_profile 中创建一个函数并从该函数中调用脚本,则该脚本不会被终止,而是会打印。如何将其集成到我的 .bash_profile 中?
这是在更复杂的脚本中使用的最小工作示例。
答案1
您还没有在示例中编写脚本;这是一个函数。因此,您将其应用kill
到交互式 shell 会话中。交互式 shell 会忽略大多数信号,包括SIGTERM
您发送的信号。
将函数及其调用放入脚本中并运行它。它更有可能达到您的预期。
答案2
如果您想直接在 bash 中将其用作函数(分别来自控制台),请尝试以下操作。
function testKill
{
kill $PPID
echo "no hello :-/"
}