Re: [問題] 問一個Shell的寫法

看板Linux作者 (feynman511)時間13年前 (2012/11/24 04:55), 編輯推噓0(0011)
留言11則, 7人參與, 最新討論串4/4 (看更多)
看到這個問題也有類似的問題 如果要先跑一個程式A A跑完以後會產生一些文件T 假設需要等A跑完以後在拿T做一些處理以後再跑別的程式 可以怎麼寫? 我試過可以用的只有 先用test 去看T產生出來沒 沒有就 sleep一段時間 然後再 test一次 等到test 看到 T檔存在了 再去執行下一步 請問有別的寫法嗎? 謝謝 ※ 引述《jtmh (:))》之銘言: : 這位網友的文章內容似乎是 UTF-8 編碼, : 幫忙轉譯如下: : josephlee101.bbs@ptt.cc (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)

11/24 07:23, , 1F
試試看script language可能比較適合你的需求ex:python or perl
11/24 07:23, 1F

11/24 07:29, , 2F
A && other_program
11/24 07:29, 2F

11/24 12:52, , 3F
謝謝建議 不過A 通常是一個 submit的動作 所以總是成功
11/24 12:52, 3F

11/24 12:52, , 4F
要判斷是否跑完 基本上是要等T 檔案出來
11/24 12:52, 4F

11/24 12:58, , 5F
不過你A跑完 不是就等於T檔案出來嗎?還是?
11/24 12:58, 5F

11/24 13:01, , 6F
A是 submit的動作 程式時常要跑幾個鐘頭甚至幾天
11/24 13:01, 6F

11/24 13:02, , 7F
所以output的T檔案不會即時出來
11/24 13:02, 7F

11/24 17:02, , 8F
linux: inotify
11/24 17:02, 8F

11/25 00:10, , 9F
A; sleep 5; other_program
11/25 00:10, 9F

11/25 12:07, , 10F
看到我就想到用tcl怎麼寫了,shell還沒有主意....
11/25 12:07, 10F

11/25 20:09, , 11F
重要的是 A 跑完前會不會 block, 會就很好寫
11/25 20:09, 11F
文章代碼(AID): #1Gh-BARY (Linux)
文章代碼(AID): #1Gh-BARY (Linux)