标签: bash-trap

为什么我的疏水阀不起作用?

我写了下面的脚本:

#!/bin/bash
sleep 15

function_signalr()
{
date
date | awk '{printf "%-15s\n", $2}' 
}

trap "function_signalr" 10
Run Code Online (Sandbox Code Playgroud)

当我通过“进程&”启动进程时,将给出PID。我确实杀死了-10 PID,但是我的陷阱不起作用。该进程被杀死,但陷阱没有弹出。没有给出日期消息。如有任何建议,我将不胜感激。

bash bash-trap

2
推荐指数
1
解决办法
129
查看次数

如何捕获输入以控制屏幕截图功能?

我想捕获输入来控制屏幕截图功能。

vim myscreenshot.sh
screenshot(){
    ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0+0,0   /tmp/out.mp4  
}
close(){
    echo "screenshot is over"
    exit
}    
trap 'screenshot'  ctrl+a #how to fix it?
trap 'close'  ctrl+b #how to fix it?
Run Code Online (Sandbox Code Playgroud)

该命令trap 'screenshot' SIGINT可以捕获ctrl+c.
我的需求:输入ctrl+a启动截图功能,ctrl+b停止截图功能bash myscreenshot.sh &,后台运行后退出。

bash bash-trap

2
推荐指数
1
解决办法
203
查看次数

Trap 命令未检测终端大小调整 (SIGWINCH)

我试图检测我的菜单何时调整大小trap "echo resized" SIGWINCH,但它似乎没有检测到它。我目前使用的是 ubuntu 20.04,并且我正在使用 bash 脚本来执行此操作。trap 命令位于我的脚本的顶部。为什么不执行?

bash bash-trap

2
推荐指数
1
解决办法
706
查看次数

Linux陷阱&&的最佳实践

使用trap可能有助于编写最干净的bash脚本.但是我想知道是否存在解决方案以便在以下情况下捕获错误:

GNU bash,版本4.2.45

好的

#!/bin/bash
trap 'echo OK i see error at line $LINENO;exit' ERR 
unknowncommand
echo "test KO should never reach me"
Run Code Online (Sandbox Code Playgroud)

案例KO

#!/bin/bash
trap 'echo OK i see error at line $LINENO;exit' ERR
unknowncommand && echo "miss the trap"
echo "test KO should never reach me"
Run Code Online (Sandbox Code Playgroud)
  • 不幸的是,我们到达最后一句话,好像&&使整个句子不是ERR.

linux error-handling bash bash-trap

1
推荐指数
1
解决办法
895
查看次数

bash 陷阱不适用于 SIGTERM 或 SIGKILL

我有这个:

  trap on_ql_trap EXIT;
  trap on_ql_trap INT;
  trap on_ql_trap TERM;
  echo "pid that called trap: $$"
Run Code Online (Sandbox Code Playgroud)

这可能可以变成速记:

  trap on_ql_trap EXIT INT TERM;
  echo "pid that called trap: $$"
Run Code Online (Sandbox Code Playgroud)

当我杀死调用陷阱的进程/pid 时,使用

kill <pid>
Run Code Online (Sandbox Code Playgroud)

或者

kill -9 <pid>
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,什么也不会发生。这个过程继续存在。在使用 -9 的第二种情况下,进程终止,但不会调用陷阱。所以这两个 kill 命令都没有做我想要的!我希望进程退出,但我需要先调用陷阱。有谁知道为什么会这样?

bash pid kill bash-trap

0
推荐指数
1
解决办法
2182
查看次数

标签 统计

bash ×5

bash-trap ×5

error-handling ×1

kill ×1

linux ×1

pid ×1