2014-01-21 52 views
0

我有一個流A和一個值B.該流包含時間戳,值B也是一個時間戳。流A有時會更新爲新行,其中包含新的時間戳。 B的值保持不變。在bash中創建EventHandler行爲

目標是輸出一個系統消息,只要時間A大於時間B.此任務應該在bash中完成。

我的想法是使用dbus-monitor "some arguments" | egrep --line-buffered "Timestamp:*" |來收聽文件A,然後是while read -r line ; do命令。

是否有可能在bash腳本中實現兩個「實時」操作?例如。一個EventHandler,一旦我的條件成立,就爲了激發系統消息?或者我將不得不使用cron? (系統消息也可以由兩個秒延遲...)

回答

1

我有點不清楚你想有發生什麼,所以這可能只是一半的答案:

這當然可以運行在bash中並行執行命令,這是我想你在問題的後半部分所要求的。給定兩個殼功能:

some_command() { 
    do_something 
} 

another_command() { 
    do_something_else 
} 

然後,您可以運行:

some_command & 
another_command & 
wait 

在這一點上,無論是some_commandanother_command運行 背景,以及wait命令使你的腳本等待 直到兩個後臺進程退出。

你可以得到很多發燒友(例如,wait可以接受的PID等待 特定的進程,並且可以使用kill停止後臺 的過程,如果您需要提前終止它,等等)。

+0

這似乎是一個好主意,並有一些額外的細節,我想我可以解決我在找的東西:爲了在兩個函數之間交換變量,我將使用一個臨時文件或如下:http://stackoverflow.com /問題/ 13207292/bash的背景,過程,修改全局變量 – AnatraIlDuck