gpt4 book ai didi

arrays - 我收到错误 "array.sh: 3: array.sh: Syntax error: "("unexpected"

转载 作者:行者123 更新时间:2023-11-29 09:06:50 26 4
gpt4 key购买 nike

我写了下面的代码:

#!/bin/bash
#Simple array
array=(1 2 3 4 5)

echo ${array[*]}

我收到错误: array.sh: 3: array.sh: 语法错误: "("意外

根据我从 Google 了解到的情况,这可能是因为 Ubuntu 现在没有默认使用“#!/bin/bash”...但是我再次添加了该行,但错误是还在继续。

我也尝试过执行 bash array.sh 但没有成功!它打印空白。

我的Ubuntu版本是:Ubuntu 14.04

最佳答案

鉴于该脚本:

#!/bin/bash
#Simple array
array=(1 2 3 4 5)

echo ${array[*]}

并假设:

  • 它位于您当前目录中名为 array.sh 的文件中;
  • 你已经完成了 chmod +x array.sh;
  • 您在 /bin/bash 中安装了一个足够新的 bash 版本(您报告说您有 4.3.8,这肯定是足够新的);
  • 你正确地执行了它

那么这应该没有任何问题。

如果您通过键入来执行脚本

./array.sh

系统会注意 #!/bin/bash 行并使用 /bin/bash 执行脚本。

如果您通过键入以下内容来执行它:

sh ./array.sh

然后它将使用/bin/sh 执行它。在 Ubuntu 上,/bin/sh 通常是指向 /bin/dash 的符号链接(symbolic link),支持数组的类 Bourne shell .这将为您提供您所报告的准确错误消息。

用于执行脚本的 shell 不受您当前使用的 shell 或在 /etc/passwd 中配置为您的登录 shell 或等效的 shell 的影响(除非您使用source. 命令)。

在您自己的回答中,您说您通过使用 chsh 将默认登录 shell 更改为 /bin/bash 来解决问题。这本身不应该有任何影响。 (无论如何,/bin/bash 是 Ubuntu 上的默认登录 shell;您之前是否将其更改为其他内容?)

一定是您在没有意识到的情况下将使用的命令从 sh ./array.sh 更改为 ./array.sh

尝试运行 sh ./array.sh 看看你是否得到同样的错误。

关于arrays - 我收到错误 "array.sh: 3: array.sh: Syntax error: "("unexpected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25222259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com