我在使用這個bash腳本時遇到了一些麻煩,我打算用它作爲運行nginx + unicorn的web服務器的啓動腳本。Bash腳本編寫和轉義
DAEMON='/bin/su - deployer -c "/home/deployer/.rvm/gems/ruby-1.9.3-p125/bin/unicorn -c /home/deployer/apps/myapp/current/config/unicorn.rb -E production -D"'
錯誤:
/bin/su: invalid option -- 'E'
我需要運行該腳本的用戶部署,但我不確定如何我所有的命令通過爲/ bin /蘇。我確信這是一個簡單的逃避錯誤,但嘗試了幾種不同的方式逃避它,但我沒有得到這個正確的。謝謝。
你爲什麼整個分配su命令鏈變量?你必須使用'eval「$ DAEMON」'來使它工作,並且每個人都討厭評估代碼,(它有很大的安全風險)。祝你好運。 – shellter 2012-02-19 18:38:30
當我注意到我必須以用戶的「部署者」身份運行此初始化腳本時,這是我首先想到的。更好的方式來做它是受歡迎的。 – 2012-02-19 19:25:49
爲什麼命令在變量中?這裏隱含的一個更好的解決方案是不把命令放在變量中。另見http://mywiki.wooledge.org/BashFAQ/050 – tripleee 2012-02-19 20:01:28