如何等到檔案出現後才執行另外的程式 - Linux

Connor avatar
By Connor
at 2016-06-06T16:40

Table of Contents

各位板上先進好
目前手邊有個shell script不知如何寫,想請教各位

問題:目前我執行第一個程式,它會產生A file及B file(兩個file產生的時間不同),
我需要等待兩個file都產生之後才能執行第二個程式,想請教該如何寫

不曉得是否要用到每隔一段時間就檢查一遍兩個file是否產生

謝謝^^

--
Tags: Linux

All Comments

Brianna avatar
By Brianna
at 2016-06-07T19:18
我記得有函數可以用
Connor avatar
By Connor
at 2016-06-11T05:45
用 make 或者是其他類似的工具,可以設定執行順序
Jessica avatar
By Jessica
at 2016-06-14T14:35
為何不在第一個程式執行完才呼叫第二個?
Jacky avatar
By Jacky
at 2016-06-15T23:55
兩個檔案都是程式執行完才會產生的
Leila avatar
By Leila
at 2016-06-16T17:03
用返回值來判定?
Hedy avatar
By Hedy
at 2016-06-20T21:10
最簡單的方式就是用 ls find 之類的東西去判斷檔案存在
與否 都存在再繼續 run 就好
Una avatar
By Una
at 2016-06-24T08:20
但是這種敘述應該就跟3F一樣的方式就可以了吧
Oscar avatar
By Oscar
at 2016-06-27T10:50
判斷檔案存在的個數 = 2 就可以執行下一個程式
Isabella avatar
By Isabella
at 2016-06-28T09:51
google inotify
Elma avatar
By Elma
at 2016-06-30T01:52
推樓上正解
Sierra Rose avatar
By Sierra Rose
at 2016-07-02T20:55
我再嘗試b大所說的看能不能成功
Hedwig avatar
By Hedwig
at 2016-07-07T01:34
[ -f AFILE -a -f BFILE ] && PROG2 ?
Una avatar
By Una
at 2016-07-09T08:21
inotify在/usr/local/bin底下找不到,似乎不能使用
Selena avatar
By Selena
at 2016-07-13T06:26
inotify 是統稱,有分system call以及binary utility,你要
Kelly avatar
By Kelly
at 2016-07-14T09:08
用在shell script.請看man inotify的SEE ALSO裏面括號標
示為(1)的
Zora avatar
By Zora
at 2016-07-15T14:43
在SEE ALSO裡面只有括號標示為2的
Quintina avatar
By Quintina
at 2016-07-16T07:00
inotify_add_watch(2),inotify_init(2)...後面都是2
Frederic avatar
By Frederic
at 2016-07-17T19:47
系統內有沒有 inotifywait 和 inotifyatch?
Hedwig avatar
By Hedwig
at 2016-07-20T17:43
inotifywatch
Quintina avatar
By Quintina
at 2016-07-25T14:32
你指的系統內是指在/usr/local/bin底下嗎?底下都無
Elma avatar
By Elma
at 2016-07-30T11:50
我看到google有人在cshell使用inotifywait,他就是從
Harry avatar
By Harry
at 2016-08-04T09:24
/usr/local/bin/inotifywait去呼叫,但我去使用linux
Charlie avatar
By Charlie
at 2016-08-05T12:27
都會回覆command not found.感覺系統沒安裝
Carol avatar
By Carol
at 2016-08-09T12:14
以我用的ubuntu 14.04為例是安裝inotify_tools套件,執行
檔在 /usr/bin 下,你可能要看一下你的系統如何安裝
Michael avatar
By Michael
at 2016-08-11T18:01
inotify-tools
Wallis avatar
By Wallis
at 2016-08-13T16:44
b大 請問有程式執行完,系統休息5秒,再繼續run下個程式
Dinah avatar
By Dinah
at 2016-08-14T05:12
的command嗎? 謝謝
Blanche avatar
By Blanche
at 2016-08-15T00:00
man sleep
Wallis avatar
By Wallis
at 2016-08-16T17:05
sleep我有用過他是一開始就啟動了,並不是程式執行完
Edith avatar
By Edith
at 2016-08-20T22:34
才啟動,不曉得有無方法
Margaret avatar
By Margaret
at 2016-08-25T07:21
不懂意思,不是script裏面某命令A完成要等5秒後再繼續命令
Damian avatar
By Damian
at 2016-08-29T23:40
B,A和B中間就加sleep. 看不懂你所想表達的意思
Connor avatar
By Connor
at 2016-08-31T06:52
原 po 跑的程式是會強制送背景嗎?
Rae avatar
By Rae
at 2016-09-02T12:28
而且萬一檔案剛建立東西還沒寫入,第二個程式就起來怎麼辦
Sarah avatar
By Sarah
at 2016-09-04T03:14
要確保檔案全部產生完成才進行下一步,可以先產生暫時檔名
Damian avatar
By Damian
at 2016-09-07T00:42
,等寫檔完成關檔後,執行檔案改名(假設為F),inotify則監視
F檔案產生才進行下一個程式
Damian avatar
By Damian
at 2016-09-11T15:42
應該是我執行的程式都在背景跑,所以sleep才一起動作
Steve avatar
By Steve
at 2016-09-14T18:53
照這樣在背景執行的話似乎就沒辦法用sleep
Eartha avatar
By Eartha
at 2016-09-15T22:33
還是可以,我不知道你的整個流程,不過你需要一個監管程式
負責在適當的時間執行該被執行的程式,等待5秒是由這個監
Jake avatar
By Jake
at 2016-09-18T08:57
管程式負責等,等5秒後再背景執行下個程式
如果依本文一開始說的要2個檔案都完成再進行下一步,假設
Bennie avatar
By Bennie
at 2016-09-22T22:14
這[下一步]開始之前要等5秒,那就是監管程式用inotifywait
監視2個檔案都完全產生了,由監管程式sleep等5秒後再執行
[下一步]
Hedda avatar
By Hedda
at 2016-09-25T21:38
現在的目的是程式在背景執行,執行完等待5秒再執行第2
Donna avatar
By Donna
at 2016-09-27T00:53
個程式在背景 看各位不知有無解決的方法 謝謝
Poppy avatar
By Poppy
at 2016-09-27T18:06
看來可以用我上面推文的作法,總之就是你需要一個監管程式
由它負責在正確的時機背景執行下個要執行的程式
Bennie avatar
By Bennie
at 2016-10-01T18:22
感覺寫成背景服務比較萬無一失
Zanna avatar
By Zanna
at 2016-10-02T12:52
應該可以先 wait A 再直接跑 B。如果 A 會結束的話 XD
Caroline avatar
By Caroline
at 2016-10-05T23:28
如果 A 結束表示東西都有正常產出的話就用 wait 吧
Yuri avatar
By Yuri
at 2016-10-09T18:37
最後是根據我吐出的log關鍵字去執行第2個程式
Daniel avatar
By Daniel
at 2016-10-13T18:11
看起來用一隻程式去做 :先執行A丟背景執行 然後就w
ait. 再用if確認有檔案的話 在執行B不就好了?XD

想組一台可以灌linux mint的電腦

Sierra Rose avatar
By Sierra Rose
at 2016-06-03T20:46
最近想要玩 Augmented Reality (AR) Sandbox https://www.youtube.com/watch?v=j9JXtTj0mzE 就是這玩意兒 然後建置這設備的外國大學寫著建議設備為 We recommend an Intel Core i5 or Core i7 CP ...

fedora 24 beta

Hedda avatar
By Hedda
at 2016-06-02T19:09
beta有段時間了,我一直以來都是在beta就升下一版 從fc6開始身為死忠腦殘f粉不裝就說不過去 fedup,晚上11點睡前執行,醒來時就裝好了,看log完成時間大概是早上5點左右 一般使用和fedora23一樣,改一點點介面,藍牙還是不能用...T.T 同一台NB在16-18左右時還可以,印象中升 ...

Ubuntu 更新完無法開啟 gnome-terminal

Steve avatar
By Steve
at 2016-06-02T16:11
※ 引述《s9209122222 (海海海)》之銘言: : 請問有人最近一次更新完後無法開啟終端機的嗎? : 我筆電和桌電都發生了這種狀況,但換個使用者就 : 可以開啟了,請問有什麼解決方法嗎? : 錯誤訊息: : Error creating terminal: : Message recipient di ...

ntp pool

Damian avatar
By Damian
at 2016-06-02T00:55
※ 引述《Alica (Torsades de Pointes)》之銘言: : 一個月前在BS2發了篇文測試轉信功能,看來本板是不打算修轉信了... : https://groups.google.com/forum/#!topic/tw.bbs.comp.linux/e-AuoxNAdz4 : (事實上PT ...

regular expression 小問題

Susan avatar
By Susan
at 2016-06-01T12:59
※ 引述《decken (HAHAHA~)》之銘言: : 大家好, : 有一份文件(https://goo.gl/2Vc3Ui): : 146460673 : PING 10.0.0.6 (10.0.0.6): 56 data bytes : 想要把146460673及56抓出來, : 自己試過下列的regu ...