scr.sh: 3: 语法错误: word unexpected (expecting “)”) [duplicate]

scr.sh: 3: Syntax error: word unexpected (expecting ")") [duplicate]

提问人:Camilla_T 提问时间:9/10/2023 最后编辑:Ted LyngmoCamilla_T 更新时间:9/10/2023 访问量:75

问:

我正在执行一项任务,但我收到一个错误:scr.sh:3:语法错误:单词意外(预期“)”)。当我尝试在本地计算机服务器上运行我的 schell 脚本时,它可以工作,但在 helios ssh 服务器上它会返回错误。这是我的测试代码:

#!/bin/bash

arr=(kitten dog parrot)
for i in ${arr[@]}
do
        echo $i
done

我试图像这样声明数组:,这是同样的错误。arr=("kitten" "dog" "parrot")

使用不起作用declare -a arr

我是这样运行的:

sh scr.sh
bash shell 语法错误 sh

评论

1赞 ruakh 9/10/2023
我不熟悉 Helios,但您的脚本是否有可能在不支持数组的非 Bash shell 中运行,或者在不支持数组的非常旧版本的 Bash 中运行?
0赞 Camilla_T 9/10/2023
我使用 GitBash 2.42.0.2。我应该尝试另一个 shell 吗?
0赞 user1934428 9/11/2023
您需要将其作为 bash 运行。 没有数组。因此,将其执行为 ,或使其可执行 (),然后以 运行它,在这种情况下,您的 #!line 将确保调用 bashshbash scr.shchmod +x scr.sh./scr.sh

答:

2赞 Ted Lyngmo 9/10/2023 #1

问题在于如何运行脚本。你告诉它使用而不是 .取而代之的是做shbash

bash scr.sh

或使文件可执行

chmod +x scr.sh

然后,您可以运行它,而无需每次都手动指定脚本语言:

./scr.sh

评论

0赞 Ted Lyngmo 9/13/2023
@Camilla_T 不客气!我很高兴它有所帮助!