Как изменить оболочку в скрипте временно в SunOS? - PullRequest
0 голосов
/ 26 апреля 2011

На машине установлена ​​оболочка по умолчанию "sh" и работает SunOS. Я пытаюсь запустить скрипт как:

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

Я получаю вывод:

NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P9 ^ M: не является идентификатором

Я думаю, что скрипт не может выполнить эту команду, но не понимаю, почему. Возможно, это потому, что оболочкой по умолчанию не является оболочка bash.

Не могли бы вы помочь мне преобразовать sh shell в bash shell внутри скрипта.

P.S .: Я также пробовал с #! / Bin / sh, но результат тот же

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

Ваш скрипт использует неправильные окончания строк.Запустите его через dos2unix.

1 голос
/ 26 апреля 2011

Вы уверены, что Bash - это то, где вы говорите? Попробуйте использовать следующий шебанг:

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

Убедитесь, что ваш сценарий оболочки является исполняемым:

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
...