shell脚本报错,如下所示,只有一句数组赋值为什么会错呢?。。。

shell脚本如下所示:
图片描述

sh运行后报错了。。
图片描述

这是怎么回事?很明显没有任何问题额。。。

shell的代码如下

#!/bin/bash
a=(1 2 3 4 5)
阅读 3.9k
4 个回答

你这个文件是用 sh执行的, 但是sh实际上执行不是 bash, 而且sh没有创建数组的语法, bash 才有创建数组的语法. 所以应该用bash test.sh. 而不是sh test.sh.
或者chmod +x test.sh之后,直接执行./test.sh就可以通过第一行的#!/bin/bash执行这个文件.

你的脚本中可能有特殊字符,使用cat -A test.sh看一下

经过跟其它讨论,你用的shell可能是dash,那么用以下方法执行脚本吧:

chmod +x test.sh
./test.sh

你看下报错
你肯定把()() 搞混了,改下就可以了。

执行时不要 sh test.sh,而是

chmod +x test.sh
./test.sh
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进