我正在尝试运行一个简单的shell脚本示例:
STR="qwe;ert;rty;tii"
IFS=';' read -r NAMES <<< "$STR"
这给了我以下错误消息:
syntax error: got <&, expecting Word
我不确定为什么这不起作用。我以为我使用的语法是 正确,我尝试与其他示例进行比较,我看到语法差不多 相同。
任何反馈都会有所帮助
由于
答案 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[@]}"