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

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

我在 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

相关内容