0

簡単なシェルスクリプトの例を実行しようとしています:

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

これにより、次のエラーメッセージが表示されます。

syntax error: got <&, expecting Word

なぜこれが機能しないのか正確にはわかりません。使用した構文は正しいと思い、他の例と比較してみましたが、構文がほぼ同じであることがわかりました。

どんなフィードバックでも役に立ちます

ありがとう

4

1 に答える 1

1

これは、GNU bash ではなく、MKS bash です。これは実際には bash ではなく、本物のシェルの構文をサポートしていません。

Windows 用の GNU bash には、完全に優れた (...まあ、かなり適切な) ビルドがあります。それらを使用します。


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

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

...これで確認できます

declare -p names

または、1 行に 1 つずつ出力します

printf '%s\n' "${names[@]}"
于 2016-08-01T17:00:19.190 に答える