2012-02-02 6 views
0

新しめのスクリプトをシェルに私が予期しないトークンの構文エラーレポートがフォーマットbashの構文エラーレポート形式(基本)

`unexpectedtoken' # ie backtick unexpected_token singlequote 

を持っていることに気付きましたバッククォートと単一引用符は何を表しているのですか?スクリプト自体には存在しません。 彼らはシェルと関係がありますが、何ですか?

具体的には、私は現在、同じ行から2つのエラーレポートを取得しています。これはデバッグの試行に役立つはずですが、それらの解釈方法はわかりません。スクリプトには、関数に渡されるparamがあります。

param行(line154)の最初の括弧は予期しないトークンです。これにより、2番目のエラーレポートがトリガされます。

./process_v7.sh: line 154: syntax error near unexpected token `(' 
./process_v7.sh: line 154: `  "(common params for all read_2 samples; exemplar: ${monoArr2[@]:(-1)})" \' 

リードバッククォートとその二重引用符で囲まれた文字列の先頭との間の間隔は、私に私のデバッグに役立つ何かを伝えるが、何しなければなりません? TIA

M

+0

上記のコードは、\ 153行目の後ろに空白がなく、\ 152行目が\で終わっていないと仮定しても問題ありません。構文エラーはおそらく140〜152行目のコードによって引き起こされます。もっと見せる。 –

+0

解決済み!私はviを使ってline154からdouble_quotesを検索し、スクリプトの冒頭にある迷子を見つけました。ヒントウィリアムありがとう。 – bobox

答えて

1

機能を定義するための構文は次のとおりです。

 
append2file() { 
    # some code that references parameters via $1, $*, [email protected], etc 
} 

あなたは()内に何かを入れているようですね。それをしないでください。

+0

@ WPursell:ありがとう、関数はOKと定義されていますが、呼び出しは誤解を招くように見えます。それは、それ自体が括弧を囲むことを含む文字列のパラメータを渡しています。コールは実際にはOKだと思われますが、誤解を招くことがあります。 – bobox