我有这个小脚本。当我启动它并且终端具有焦点时Ctrl+C会停止 feh,然后 while 循环会再次启动 feh。我期望,只要终端 (!) 具有焦点,Ctrl+C就会中断 while 循环并终止 feh。
#!/bin/bash
sleep 2
while true; do
feh --cycle-once -zD $1 *.png
done
有人能告诉我如何才能在这里获得这种首选行为吗?
答案1
尝试这个:
#! /bin/bash
sleep 2
while feh --cycle-once -zD $1 *.png; do :; done
这样,当 feh 以非零状态退出时(就像您终止它时一样),循环将结束。
答案2
捕获 INT 信号,例如:Ctrl+C
更多信息这里
trap trapint 2
function trapint {
exit 0
}
在您的代码中如下:
#!/bin/bash
trap trapint 2
function trapint {
exit 0
}
sleep 2
while true; do
feh --cycle-once -zD $1 *.png
done