多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
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 ```