我正在編寫一個Bash函數來啓動需要從某個文件夾啓動的服務器,但我不想啓動這個服務器來影響我當前的工作。我已經寫了以下內容:在bash函數中產生一個後臺進程
function startsrv {
pushd .
cd ${TRUNK}
${SERVERCOMMAND} &
popd
}
我的變量都設置,但這種執行時,我得到關於在輸出意外分號的錯誤,看來Bash是符號開始${SERVERCOMMAND}
後插入一個分號在背景中。
有什麼我可以做的,在後臺啓動${SERVERCOMMAND}
,同時仍然使用pushd和popd來確保我最終返回到當前目錄?
編輯:的echo ${SERVERCOMMAND}
輸出,因爲它要求:
yeti --server --port 8727
錯誤消息:
-bash: syntax error near unexpected token `;'
的PUSHD技巧是好的,但$ {} SERVERCOMMAND沒有分號,它是等於'雪人--server --port $ {YETIPORT}'YETIPORT是數字。使用subshell版本時出現同樣的錯誤。 – foxxtrot 2011-06-09 20:19:21
你可以給出你正在得到的確切的錯誤信息,也可以'echo「$ SERVERCOMMAND」'並顯示它的確切值? ('$ {YETIPORT}'的變量替換應該已經被執行,所以你應該看到一個實際的端口號,而不是變量名。) – 2011-06-09 20:45:09
已被添加到問題中。 – foxxtrot 2011-06-09 21:41:51