数组 – Bash数组:意外语法错误[已关闭]

我正在写这个简单的bash脚本如下。
#!/bin/bash

array=( /home/abc/Downloads/something.bat /home/abc/Downloads/smb.conf )
echo ${array[@]}

我希望它打印数组中文件的所有名称。但是我得到这个错误

test.sh: 3: Syntax error: "(" unexpected

如果我更改数组的声明

array = {/home/abc/Downloads/something.bat /home/abc/Downloads/smb.conf}

这个错误消失了,但我仍然有新的错误

test.sh: 3: array: not found
test.sh: 4: Bad substitution

如何解决这个问题?这是我第一次在shell编程中,所以我无法自己解决问题。

解决

我正在执行它作为sh test.sh但我忘了我不得不执行它作为bash test.sh

变量赋值在=符号周围不能有空格:
array=( /a/b/  /c/d )
     ^--no spaces

你确定?

marc@panic:~$ array =(a b)      
bash: Syntax error near unexpected token `('
marc@panic:~$ array= (a b)  
bash: Syntax error near unexpected token `('
marc@panic:~$ array = (a b)
bash: Syntax error near unexpected token `('
marc@panic:~$ array=(a b)  
marc@panic:~$ echo ${array[1]}
b

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...