作者noonee (feynman511)
看板Linux
標題Re: [問題] 問一個Shell的寫法
時間Sat Nov 24 04:55:35 2012
看到這個問題也有類似的問題
如果要先跑一個程式A A跑完以後會產生一些文件T
假設需要等A跑完以後在拿T做一些處理以後再跑別的程式
可以怎麼寫?
我試過可以用的只有 先用test 去看T產生出來沒
沒有就 sleep一段時間 然後再 test一次
等到test 看到 T檔存在了 再去執行下一步
請問有別的寫法嗎?
謝謝
※ 引述《jtmh (:))》之銘言:
: 這位網友的文章內容似乎是 UTF-8 編碼,
: 幫忙轉譯如下:
: [email protected] (joe) writes:
: > 我有一個執行序完成以後,
: > 他會自己產生出一個a.out的檔案,
: > 我想問說怎樣寫一個Shell,
: > 當a.out檔案出來時,
: > 系統會自動執行下一個指令。
: > --
: > ◆ From: 140.113.5.58
: 生成a.out的是gcc吧。
: 代碼如下:
: #!bin/bash
: gcc $1 && check=1
: if [ "$check" == "1" ]; then
: chmod 744 a.out
: ./a.out
: fi
: 你需要新建一個文件bianyi.sh,將上面的代碼複製進去,然後保存。
: 將該文件與你要編譯的c源程序放在同一個文件夾,然後執行如下命令:
: sh bianyi.sh yourfile.c
: 這樣就沒問題了。如果編譯不通過的時候會顯示gcc的錯誤提示而不會去執行a.out。
: ##如果你不是進行c源程序編譯,請自行修改"gcc $1 && check=1"這一行,將gcc這
: 個命令改為你需要使用的命令即可。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 108.224.49.149
※ 編輯: noonee 來自: 108.224.49.149 (11/24 04:57)
→ Ihk:試試看script language可能比較適合你的需求ex:python or perl 11/24 07:23
→ carlcarl:A && other_program 11/24 07:29
→ noonee:謝謝建議 不過A 通常是一個 submit的動作 所以總是成功 11/24 12:52
→ noonee:要判斷是否跑完 基本上是要等T 檔案出來 11/24 12:52
→ carlcarl:不過你A跑完 不是就等於T檔案出來嗎?還是? 11/24 12:58
→ noonee:A是 submit的動作 程式時常要跑幾個鐘頭甚至幾天 11/24 13:01
→ noonee:所以output的T檔案不會即時出來 11/24 13:02
→ kdjf:linux: inotify 11/24 17:02
→ dyoll:A; sleep 5; other_program 11/25 00:10
→ OpenSolaris:看到我就想到用tcl怎麼寫了,shell還沒有主意.... 11/25 12:07
→ legnaleurc:重要的是 A 跑完前會不會 block, 會就很好寫 11/25 20:09