gpt4 book ai didi

bash - 使用范围内的管道命令终止无限循环

转载 作者:行者123 更新时间:2023-11-29 09:26:48 25 4
gpt4 key购买 nike

我有一个非常简单的 unix bash 脚本,我用它每秒执行一个命令。它具有以下形式:

while : ; do
cat /proc/`pidof iBrowser.bin`/smaps | awk -f ./myawkscript.awk >> $DIRPATH
sleep 1
done

脚本运行良好,但不会停止!如果我在脚本运行时按 ctrl-C,进程不会停止,并且出现以下错误:

cat: can't open '/proc//smaps': No such file or directory

有谁知道如何避免这种情况?

最佳答案

您应该考虑陷阱功能。参见 thisthis .

要捕获 ctrl-c,您需要定义一个处理程序,例如:

ctrl_c ()
{
# Handler for Control + C Trap
echo ""
echo "Control + C Caught..."
exit
}

然后声明您希望使用该处理程序捕获它:

trap ctrl_c SIGINT

或者...

您可以通过附加 & 在后台运行脚本,例如

$ ./your_script.sh &

这会在 [方括号] 中为您提供工作 ID:

$ ./your_script.sh &
[1] 5183

(在本例中为 1)。完成后,您可以使用

终止进程
$ kill %1

请注意百分号表示您引用的是作业而不是进程 ID

关于bash - 使用范围内的管道命令终止无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5897102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com