0

我有一个带有以下代码的shell脚本;

#!/bin/bash
nfcapd -z -w -t30 -p 2055 -l /home/shane/Documents/nfdump

我的问题是,当我执行 shell 脚本时,上面的命令一遍又一遍地执行(它从路由器捕获网络流量),但我希望它在 30 秒后停止。在终端中我只需按Ctrl+ ,有没有办法在特定时间 t 后c执行此命令(Ctrl+ )?c

4

3 回答 3

6

采用timeout

timeout 30 nfcapd -z -w -t30 -p 2055 -l /home/shane/Documents/nfdump

更多信息在这里

于 2013-03-01T11:27:44.523 回答
2

把这句话放在后面#!/bin/bash

(睡 30 ;杀死 -9 $$)&

看看它是否适用于你的情况。

于 2013-03-01T11:36:23.513 回答
2

你也可以杀死最后一个工作:

#! /bin/bash
nfcapd -z -w -t30 -p 2055 -l /home/shane/Documents/nfdump &
sleep 30 ; kill %%
echo "nfcapd terminated"
exit 0
于 2013-03-01T12:50:04.610 回答