1

我的 sh 脚本有问题。

我正在使用覆盆子,并希望在我的脚本中使用 fbi 帧缓冲区显示图像 10 秒。在这 10 秒之后,我希望我的脚本运行其他顺序命令。

我写:

[...]
if[...]
fbi --noverbose $MEDIAFILE
MYPID=pgrep fbi
echo "[$MYPID] this is MY PID - and now i kill it!!!"
[...]

但是我的脚本在第一行(fbi --noverbose...)中停止了,我无法在下一行中杀死它:(。

我无法在后台执行命令,因为我需要查看图像...

任何想法?谢谢你!

4

2 回答 2

2

如果 fbi 无法在后台运行,请将您的 kill 命令置于后台。要让它在延迟后发生,请使用先休眠的子shell,然后运行 ​​kill 命令。脚本看起来像这样:

( sleep 10 ; kill $(pgrep fbi) ) &
fbi somefile
于 2013-06-08T19:55:50.887 回答
2

如果您的目标是在一定秒数后不再显示,您还可以添加命令行选项“-t secs”和“-1”。“-t secs”用于幻灯片,是显示下一张图像的时间,“-1”表示幻灯片不会循环播放。在你的情况下:

fbi --noverbose -t 10 -1 $MEDIAFILE

这会显示图像十秒钟,然后 fbi 命令完成。无需终止进程。

于 2017-10-04T08:10:13.200 回答