2015-05-10 223 views
2

我想我的部署在Linux系統中的應用程序,我有一個名爲setAppPath.sh文件文件:錯誤執行螞蟻:-bash:螞蟻:找不到命令

#!/bin/sh 
APP_HOME=`pwd` 
ANT_HOME=$APP_HOME/lib/ant 

echo $ANT_HOME 

PATH=$ANT_HOME/bin:$APP_HOME/scripts/unix:$PATH 

echo $PATH 

chmod +x $ANT_HOME/bin/ant 
chmod +x $APP_HOME/scripts/unix/*.sh 

export APP_HOME ANT_HOME PATH 

當我嘗試執行ant命令我得到一個錯誤消息:

-bash: ant: command not found 

回聲$ANT_HOME正在打印我的螞蟻歸屬位置路徑是正確打印了。

執行setAppPath.sh文件後,我試着echo $ ANT_HOME它給了空行。

請幫我解決這個問題。

編輯1:which ant給沒有螞蟻

我用sh setAppPath.sh命令執行的sh文件。

回答

1

當您正常運行腳本時,會發生什麼情況是您的shell啓動了一個新進程,該腳本在該進程中運行,並且腳本完成時該進程死亡並控制返回到您的shell。

腳本對環境所做的所有修改都會隨之死亡。這些更改對父shell沒有影響。如果您嘗試在腳本中運行cd,並期望父shell移動,則情況也是如此。

要在你的shell的上下文中運行你的腳本,而不是一個子進程,使用source.命令:

source setAppPath.sh 
. setAppPath.sh 
+0

謝謝墊解釋。 – NewUser