我有一个流A和一个值B.流包含时间戳,值B也是时间戳。有时使用包含新时间戳的新行更新流A. B的值保持不变。
目标是在时间A大于时间B时输出系统消息。此任务应在bash中完成。
我的想法是使用dbus-monitor "some arguments" | egrep --line-buffered "Timestamp:*" |
监听文件A,然后是while read -r line ; do
命令。
是否可以在bash脚本中实现两个“实时”动作?例如。一个EventHandler,为了在我的条件成立时立即触发系统消息?或者我必须使用cron吗? (系统消息也可能会延迟两秒......)
答案 0 :(得分:2)
我对你想要发生什么事情有点不清楚,所以这可能只是答案的一半:
当然可以在bash中并行运行命令,这是我认为你在问题的后半部分要求的。给出两个shell函数:
some_command() {
do_something
}
another_command() {
do_something_else
}
然后您可以运行:
some_command &
another_command &
wait
此时,some_command
和another_command
都在运行
后台和wait
命令会导致脚本等待
直到两个后台进程都退出。
你可以获得更多的爱好者(例如,wait
可以接受pid等待
一个特定的过程,您可以使用kill
来停止后台
如果您需要提前终止,等等。)