shell脚本数组报错Syntax error: "(" unexpected

转载 2015年03月03日 15:11:33

纠结了半天,原来如此,有错还是早点在网上找找有效率。

以下为转载部分:

——————————————————————————————————————————————————————————————————————————————

按照正常的shell数组定义,例如example.sh

#!/bin/sh
a=( 1 2 3)
for number in ${a[@]}
do
echo $number
done
执行该脚本,在有的机器上会报错Syntax error: "(" unexpected

这与你实际使用的shell版本有关。你可以用 ls -l /bin/*sh打印出来,例如:
-rwxr-xr-x 1 root root 959120 Mar 29  2013/bin/bash
lrwxrwxrwx 1 root root    21 Nov 22  2013 /bin/csh ->/etc/alternatives/csh
-rwxr-xr-x 1 root root 109768 Mar 30  2012/bin/dash
lrwxrwxrwx 1 root root     4 Mar 29  2013 /bin/rbash ->bash
lrwxrwxrwx 1 root root     4 Mar 30  2012 /bin/sh ->dash
lrwxrwxrwx 1 root root     7 Nov 17  2012 /bin/static-sh-> busybox
lrwxrwxrwx 1 root root    13 Oct 15  2011 /bin/tcsh ->/usr/bin/tcsh
在这里,sh被重定向到dash,因此,如果执行./example.sh,则使用的是dash
避免报错可有多种方法,例如执行 bash example.sh,或者,将脚本第一行改为
#!/bin/bash,执行./example.sh也可以。

有关该问题,还可以参考Ubuntu论坛:
http://ubuntuforums.org/archive/index.php/t-444304.html

Shell编程笔记——Syntax error: "(" unexpected

参考网页: 运行文集Syntax error: "(" unexpected编程
  • breeze5428
  • breeze5428
  • 2014-05-28 17:21:28
  • 2956

shell脚本----调试脚本时候出现Syntax error: "(" unexpected错误解决

#!/bin/bash A=(a b c d e f) echo ${A[2]} echo ${A[@]} bash xx.sh 或者直接运行 ,sh 与 bash 有些地方不兼容...
  • yf210yf
  • yf210yf
  • 2013-06-16 16:34:35
  • 7640

【玩转Ubuntu】08. Linux报错:Syntax error: "(" unexpected解决办法

问题: 在MAC上写了一段shell脚本,放到Ubuntu上运行总是报下面这个错误,单步调试都是对的,就是直接运行会报错。 bixiaopeng@ubuntu:~/package$ sh ...
  • wirelessqa
  • wirelessqa
  • 2013-09-15 14:09:19
  • 9300

关于linux报bash ‘/bin/sh: Syntax error: “(” unexpected

折腾了好久- - 就是因为用的是linux将sh指向了dash而不是bash,so。。兼容就有问题了 查看当前指向就是 echo $SHELL 一般在使用bash特性的脚本前写 #!...
  • wu560130911
  • wu560130911
  • 2014-09-09 19:06:52
  • 1938

shell之数组

一 数组 1.1 定义数组 通过指定元素定义 array[key]=value key代表索引,如array[1]=one,索引从0开始 echo “${array[@]}”获取所有数组...
  • qq504196282
  • qq504196282
  • 2016-11-01 13:44:27
  • 1540

Linux Shell 学习笔记(六)---注释/字符串/数组

注释 以“#”开头的行就是注释,会被解释器忽略。 sh里没有多行注释,只能每一行加一个#号。 如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢? 每一行加个#符号太...
  • scgaliguodong123_
  • scgaliguodong123_
  • 2015-01-02 17:22:07
  • 907

ubuntu的sh文件编程(二)

继续(一)的学习。 以“#”开头的行就是注释,会被解释器忽略。 sh里没有多行注释,只能每一行加一个#号。只能像这样: #------------------------------------...
  • langb2014
  • langb2014
  • 2016-11-15 10:27:25
  • 1439

shell数组的定义及循环

shell中数组的定义及遍历,先直接看示例: #!/bin/sh #定义方法一 数组定义为空格分割 arrayWen=(a b c d e f) #定义方法二 arrayXue[0]="m" arr...
  • wenxuechaozhe
  • wenxuechaozhe
  • 2016-12-11 20:32:14
  • 14329

Syntax error: word unexpected (expecting ")")

mkdir.sh 执行 sh mkdir.sh xxx(参数) 错误提示:mkdirs.sh: 9: Syntax error: word unexpected (expecting "do"...
  • fei33423
  • fei33423
  • 2014-03-25 14:43:26
  • 6058

shell脚本 数组操作报Syntax error: "(" unexpected

#!/bin/sh 脚本: var="get the length of me" var_arr=($var) for i in var_arr; do echo "$i"; done...
  • wxpara1955
  • wxpara1955
  • 2015-12-10 09:31:02
  • 377
收藏助手
不良信息举报
您举报文章:shell脚本数组报错Syntax error: "(" unexpected
举报原因:
原因补充:

(最多只允许输入30个字)