Shell 语法 IFS

Shell syntax IFS

我正在尝试 运行 一个简单的 shell 脚本示例:

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

这给我以下错误消息:

syntax error: got <&, expecting Word

我不确定为什么这不起作用。我以为我使用的语法是 正确,我尝试与其他示例进行比较,我发现语法几乎是 相同。

任何反馈都会有所帮助

谢谢

这是 MKS bash,不是 GNU bash。它不是真正的 bash,也不支持正版 shell 的语法。

Windows 的 GNU bash 构建非常好(...好吧,相当合适)。使用它们。


特别是,在实际 bash 中,将分号分隔的字符串拆分为名称数组:

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

...然后您可以使用

进行验证
declare -p names

或与

发出一对一的线
printf '%s\n' "${names[@]}"