お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。
  • インデックス
  •  » 開発環境
  •  » シェルスクリプトの実行結果が端末では正常ですがエクリプスではエラーとなる

#1 2016-09-25 15:48:37

cherry7
メンバ
登録日: 2014-04-20

シェルスクリプトの実行結果が端末では正常ですがエクリプスではエラーとなる

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
◎ 端末実行結果は正しく終わる

オフライン

 

#2 2016-09-25 23:19:34

aaabbbcccdddeeefffggghhh
メンバ
登録日: 2008-02-25

Re: シェルスクリプトの実行結果が端末では正常ですがエクリプスではエラーとなる

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なはずです。

オフライン

 

#3 2016-09-26 01:20:52

cherry7
メンバ
登録日: 2014-04-20

Re: シェルスクリプトの実行結果が端末では正常ですがエクリプスではエラーとなる

aaabbbcccdddeeefffggghhhさん

回答して頂き有難うございました。ご指摘のとおりインタープリターの設定でbashを追加して

それをデフォルト値として変更設定しました。

改めて実行したところ、端末出力と同じ結果を得ました。問題解決して思わずニッコリ(笑)です。

初期定義dash を、よく読まないままbashと勝手に解釈していたのが間違いの元でした。

ほんとうに有難うございました。

オフライン

 
  • インデックス
  •  » 開発環境
  •  » シェルスクリプトの実行結果が端末では正常ですがエクリプスではエラーとなる

Board footer

Powered by FluxBB