我正在编写 php cli 交互式程序,它使用readline
扩展程序充当shell。
但我发现当我按 Ctrl + C 时,整个程序退出。我希望它能得到一个新的提示而不是退出(就像bash
)。
所以我尝试pcntl_signal
来处理SIGINT
pcntl_signal(SIGINT, SIG_IGN);
它没有退出并且没有任何反应(就像死了一样)
我将代码更改为:
pcntl_signal(SIGINT, function(){
echo "\n";
});
这次打印^C
但没有新行,当我按 Enter 时,这些是提示前的新行。
我已阅读Readline: Get a new prompt on SIGINT,但它使用的是C
,我发现siglongjmp
中没有php
个功能。
所以当我按 Ctrl + C
时,我想知道是否有可能获得新提示