ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
debian脚本数组报错 问题描述: debain运行shell脚本里如果包含数组就会报错,而centos就不会 ``` [root@test-100 list]# cat testtt.sh #!/bin/bash abc=(1 2 3 ) echo ${abc[*]} ``` 在debian下运行脚本就会报格式错误 ``` [root@test-100 list]# sh testtt.sh testtt.sh: 3: testtt.sh: Syntax error: "(" unexpected ``` 报错原因: 其他操作系统执行sh指向的是bash 但是debian的sh指向的确实dash ``` [root@test-100 list]# which sh /bin/sh [root@test-100 list]# ls -lh /bin/sh lrwxrwxrwx 1 root root 4 Nov 8 2014 /bin/sh -> dash ``` 又因为dash是比bash还轻量的,只支持基本的shell功能, 其中不包括刚才那种数组初始化,所以才会识别不了,直接报Syntx error 解决办法是,先赋予脚本执行权限,然后直接用bash test.sh,或者./test.sh,这两种方式来执行脚本。 ``` [root@test-100 list]# chmod +x testtt.sh [root@test-100 list]# bash testtt.sh 1 2 3 ```