2013-10-27 52 views
0

我想寫一個腳本外殼(Mac OS X)用於在啓動代理中部署我的Awestruct網站。 所以,我必須在部署之前生成網站。生成網站的命令是: awestruct -g腳本外殼來自動部署網站

我的腳本是myscript.sh:

cd /my/site/structure/base/directory 
awestruct -g 

此腳本由系統在事件發生時啓動。

但問題是,它不知道awestruct ...

我awestruct節目是我的紅寶石安裝的一部分,並添加到我的PATH變量。

當我手動運行該腳本,它的工作原理(因爲它是我的用戶是誰lauynching吧) 當系統檢測到事件並運行該腳本,它的結果爲:

awestruct: command not found 

問題是PATH ...

回答

1

如果它工作手動,然後在相同的提示符,它的工作原理,運行命令:

which awestruct 

這將打印具有完整路徑的程序文件,讓我們假設/usr/local/bin/awestruct,但使用它確實是。然後使用你的腳本,例如:

cd /my/site/structure/base/directory 
/usr/local/bin/awestruct -g 

這假定沒有其他的環境變量,只爲您的帳戶,該帳戶awestruct需求定義。如果有,然後找出它們是什麼,並與線運行awestruct之前將它們添加到您的腳本,例如:

export AWESTRUCT_ENVIRONMENT_VARIABLE=foobar 

(注意:當您正常運行腳本像任何計劃,不會改變父外殼環境)。

0

您還可以將路徑添加到運行腳本的用戶的PATH中的可執行文件並獲取錯誤。

你可以嘗試這樣的:

$ su - <user_that_run_the_script> 
$ echo "export PATH=$PATH:$(which awestruct)" >> ~/.bash_profile 
$ source ~/.bash_profile 

(對於Linux用戶,使用〜/ .bashrc,而不是〜/ .bash_profile中)