2011-04-25 71 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