2013-03-04 240 views
0

我想編寫一個shell腳本來執行像「export JAVA_HOME = .....」這樣的命令。 我怎麼寫腳本?如何將命令寫入shell腳本?

我嘗試:

#!/bin/sh 
echo "test" 

export PATH=$JAVA_HOME/bin:$PATH 
export AWS_AUTO_SCALING_HOME=/usr/local/CLI 
export PATH=$PATH:$AWS_AUTO_SCALING_HOME/bin 
export AWS_CREDENTIAL_FILE=/usr/local/CLI/credential-file-path.template 

但命令不執行。

+1

你想在啓動時運行它們嗎?如果是這樣,假設你使用'bash' shell,你需要添加你的啓動腳本,比如'$ HOME/.bashrc'。 – Tuxdude 2013-03-04 03:28:45

回答

-1

你有沒有嘗試設置權限來執行這個文件?

chmod + x filename

+0

使腳本可執行將無濟於事,詳見其他答案。 – Johnsyweb 2013-03-04 11:19:07

+0

儘管如此,如果他沒有使其「可執行」,他將無法運行它... – 2013-03-04 22:01:33

+0

此腳本不需要「運行」,它必須來源。 – Johnsyweb 2013-03-04 22:09:30

4

你是如何執行腳本的?如果你使用:

$ script.sh 

環境被設置爲腳本的持續時間,但父殼是該完全不受影響(Unix並不是DOS!)。

要獲得命令的結果到您的外殼,使用方法:

$ . script.sh 

或bash,那麼你可以使用:

$ source script.sh 

(這是.(點)命令的同義詞,它自Bourne shell以來一直在shell中.命令先在C shell中,然後添加到Bash中。)

這些將腳本讀入當前進程。任何環境變量設置都會影響當前進程。例如,使用. $HOME/.profile可以有效地讀取您的配置文件。

請注意,在$ PATH的目錄中搜索虛線命令的文件,但該文件只需要可讀,不可執行。