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[@]}"
我正在尝试 运行 一个简单的 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[@]}"