2011-04-25 70 views
0

機器具有默認shell「sh」並運行SunOS。我嘗試運行像腳本:如何在sunOS中臨時更改腳本中的shell?

#!/bin/bash 
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P9 
echo $NLS_LANG 

我得到的輸出:

NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P9^M:是不是標識符

我覺得劇本不能執行這個命令,但做不明白爲什麼。也許這是因爲默認的shell不是bash shell。

你能幫我把sh shell轉換成腳本里面的bash shell嗎?

P.S:我也試圖與#/ bin/sh的,但結果是一樣的

回答

1

你確定Bash是你說的地方嗎?請考慮使用以下家當:

bash-3.2$ cat ./test.sh 
#!/usr/bin/env bash 
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P9 
echo $NLS_LANG 

確保你的shell腳本是可執行的:

bash-3.2$ chmod +x ./test.sh 
bash-3.2$ ls -l ./test.sh 
-rwxr-xr-x 1 paj staff 81 26 Apr 11:52 ./test.sh 

和運行...

bash-3.2$ ./test.sh 
AMERICAN_AMERICA.WE8ISO8859P9 
+0

謝謝Johnsyweb我發現了我的錯誤。我試圖用#sh test.sh運行,這樣它就不會工作。我嘗試了#。/ test.sh,它工作。感謝大家... – fjallstorm 2011-04-26 06:04:15

+0

樂於助人。你不需要在'./test.sh'之前輸入任何內容。 – Johnsyweb 2011-04-26 06:44:47

2

你的腳本是用錯了行尾。通過dos2unix運行它。

+0

現在我得到的輸出:NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P9:不是標識符 – fjallstorm 2011-04-25 21:10:25

+0

你是如何執行腳本的? – 2011-04-25 21:31:44