Bash 脚本:意外标记“(”附近的语法错误

0 command-line bash scripts

我在 Mac 上的 Bash 中运行一个脚本,我试图将一个字符串拆分成一个数组,分隔符是一个空格。我正在运行的命令是:

array = ($(echo "$string" | tr ' ' "\n"))
Run Code Online (Sandbox Code Playgroud)

返回“意外的'('”错误。我尝试了多种解决方案,包括

  • 转义括号
  • 在命令周围加上引号
  • 确保空间不会导致错误
  • 确保我的标题是 #!/bin/bash

Ser*_*nyy 6

首先,shell 脚本中的赋值不应在=(变量/数组名称)的左侧和赋值运算符的右侧之间包含空格=。至于将字符串转换为数组,您不需要显式用换行符替换空格,只需利用自动分,当调用未加引号的变量时会发生这种情况:

$ string='This is a hello world string'
$ array=( $string  )
$ echo ${array[3]}
hello
$ echo ${array[4]}
world
Run Code Online (Sandbox Code Playgroud)