0

マシンにはデフォルトのシェル「sh」があり、SunOS が実行されています。私は次のようにスクリプトを実行しようとします:

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

出力が得られます:

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P9^M: 識別子ではありません

スクリプトはこのコマンドを実行できないと思いますが、その理由がわかりません。デフォルトのシェルが bash シェルではないためかもしれません。

スクリプト内で sh シェルを bash シェルに変換する方法を教えてください。

PS: #!/bin/sh でも試しましたが、結果は同じです

4

2 に答える 2

2

スクリプトが間違った行末を使用しています。実行しますdos2unix

于 2011-04-25T20:41:28.057 に答える
1

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
于 2011-04-26T01:54:06.053 に答える