2016-08-01 7 views
0

私は簡単なシェルスクリプトの例を実行しようとしている:シェル構文IFS

STR="qwe;ert;rty;tii" 
IFS=';' read -r NAMES <<< "$STR" 

これは私に次のエラーメッセージ与えている:

syntax error: got <&, expecting Word 

を私がなぜこのISN正確にはわかりません働いていない。私が使用した構文は であり、他の例と比較しようとしましたが、構文がほぼ同じであったことがわかりました と同じです。

すべてのフィードバックは、これは、MKSのbashのではなく、GNU bashのです

おかげ

+0

私はあなたのアドレスではありませんあなたは '-a'オプションを使いたいかもしれません。 – karakfa

+1

*あなたのコードは*ではありません。質問をする前にスニペット*が問題を再現していることを確認してください。 –

+2

... btw、私たちはこの**正確な**質問を投稿し、数日前に削除しました:http://stackoverflow.com/questions/38667961/shell-script-issue –

答えて

1

に役立つだろう。それは実際にbashではなく、本物のシェルの構文をサポートしていません。

Windows用のGNU bashビルドは完全に優れています。それらを使用してください。


特に、実際のbashで、名前の配列にセミコロンで区切られた文字列を分割する:

str='qwe;ert;rty;tii' 
IFS=';' read -r -a names <<<"$str" 

...あなたは、その後で確認することができます

declare -p names 

printf '%s\n' "${names[@]}" 
関連する問題