
Ubuntu日本語フォーラム

ログインしていません。
Ubuntu 14.04 LTS os種別32ビット
下記シェルスクリプトを実行するとエプリクスと端末では何故か結果が違って終わります。
間違いがわかりません、宜しくお願いします。
#!/bin/bash
kisetu=("har" "nat" "aki" "fyu") ←ここでSyntax error: "(" unexpected
for siki in ${kisetu[@]}
do
echo $siki
done
exit 0
◎ エプリクスでは、実行結果はエラーが発生する
Eclipse Version: Mars.2 Release (4.5.2) Build id: 20160218-0600
Syntax error: "(" unexpectedエラー
~$ bash hairetu.sh ← GNOME 端末 3.6.2では
har
nat
aki
fyu
◎ 端末実行結果は正しく終わる
オフライン
cherry7 による投稿:
kisetu=("har" "nat" "aki" "fyu") ←ここでSyntax error: "(" unexpected
初期設定の問題ですね。
Eclipseをお使いということはShellEdですよね?
ShellEdの初期設定では強制的に /bin/sh を使用するようになっています。
Ubuntuの /bin/sh は /bin/dash で dash は bash の構文全てには対応していません。
なので Syntax error が出るわけです。
エラーを回避するには、
Eclipseのメニューバーのウィンドウ → 設定 → Shell Script → インタープリター
で設定を変更すればOKなはずです。
オフライン
aaabbbcccdddeeefffggghhhさん
回答して頂き有難うございました。ご指摘のとおりインタープリターの設定でbashを追加して
それをデフォルト値として変更設定しました。
改めて実行したところ、端末出力と同じ結果を得ました。問題解決して思わずニッコリ(笑)です。
初期定義dash を、よく読まないままbashと勝手に解釈していたのが間違いの元でした。
ほんとうに有難うございました。
オフライン