Shell语法IFS

时间:2016-08-01 16:27:09

标签: bash shell ifs

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

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

这给了我以下错误消息:

syntax error: got <&, expecting Word

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

任何反馈都会有所帮助

由于

1 个答案:

答案 0 :(得分:1)

这是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[@]}"