看板 Linux 關於我們 聯絡資訊
※ 引述《gigigigi (gigigigi)》之銘言: 因為指令太長直接在 PTT 上面推文不方便,直接回文 : 我想使用 nohup & 再背景自動 build code : 可是我build code 需要有多行指令 : export USERDATA_APK="Facebook_Client"; : source build/envsetup.sh; lunch dlx-userdebug DEBUG; : make 2>&1 > make.log : 我把上面合併起來變成一行 ,指令前後分別加上nohup , & 包住這些指令 : 不過還是無法build成功 : nohup export USERDATA_APK="Facebook_Client" ; : source build/envsetup.sh; lunch dlx-userdebug DEBUG; make 2>&1 > : make.log & : 請問這是什麼原因? : 謝謝 這個語法有點問題,要記得 nohup 後面要傳入實際外部命令達成目的效果, 其中 export 這是 bash 內建命令所以不能夠這樣使用 指令內 lunch 不知道是 envsetup.sh 產生的 function 呼叫名稱還是外部的 程式檔案?這會牽涉到整個要套用 nohup 有不同情況。 建議上面這些命令寫成一個 shell script,後續可以用 nohup 來執行是比較 快速與方便的作法。 #!/bin/bash export USERDATA_APK="Facebook_Client"; source build/envsetup.sh; lunch dlx-userdebug DEBUG; make 編寫好之後儲存,chmod a+x filename.sh 完成權限設定,後續可以用 nohup ./filename.sh > result.log 2>&1 & 這樣方式執行就好 另外你原本 make 2>&1 > make.log 這語法也不大正確,正確應該是 make > make.log 2>&1,後者方式才可以正確把 stdout/stderr 訊息都儲存起來, 你的順序反了儲存的結果就有點問題。 make 2>&1 > make.log 這會變成把原本透過 stdout 訊息儲存到 make.log 檔案, 而透過 stderr 訊息顯示在螢幕上面。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.145.21 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1437814141.A.6B4.html ※ 編輯: kenduest (111.243.145.21), 07/25/2015 16:49:21