我在 Mac 上的 Bash 中运行一个脚本,并尝试将以空格为分隔符的字符串拆分为数组。我运行的命令是:
array = ($(echo "$string" | tr ' ' "\n"))
返回“意外的‘(’”错误。我尝试了多种解决方案,包括
- 转义括号
- 用引号括住命令
- 确保空格不会导致错误
- 确保我的标题是
#!/bin/bash
答案1
首先,shell 脚本中的赋值不应该在赋值运算符的左侧=
(变量/数组名称)和右侧之间包含空格=
之间包含空格。至于将字符串转换为数组,您不需要明确地用换行符替换空格,只需利用自动单词拆分,当调用未加引号的变量时会发生这种情况:
$ string='This is a hello world string'
$ array=( $string )
$ echo ${array[3]}
hello
$ echo ${array[4]}
world