nohup + & 同時執行多行指令 - Linux

By Damian
at 2015-07-25T16:48
at 2015-07-25T16:48
Table of Contents
※ 引述《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 上面推文不方便,直接回文
: 我想使用 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 訊息顯示在螢幕上面。
--
Tags:
Linux
All Comments
Related Posts
虛擬歌手徵音梅林V1.0日語版發表

By Ina
at 2015-07-25T13:21
at 2015-07-25T13:21
nohup + & 同時執行多行指令

By James
at 2015-07-25T01:43
at 2015-07-25T01:43
用 USB 安裝 linux 失敗

By Dinah
at 2015-07-25T00:34
at 2015-07-25T00:34
決定來挑戰:自己寫BBS

By Sarah
at 2015-07-24T11:14
at 2015-07-24T11:14
用 USB 安裝 linux 失敗

By Doris
at 2015-07-24T11:01
at 2015-07-24T11:01