今儿继续学习shell script的相关知识,当然了还是按照鸟哥的基础书来看!在实验又是遇见错误:
root@zhou:/scripts# sh sh013.sh [: 21: 20111201: unexpected operator sh013.sh: 23: declare: not found sh013.sh: 24: declare: not found sh013.sh: 25: arithmetic expression: expecting primary: "-"首先,我怀疑自己的代码写错了,仔细查看代码没有错,上网查后大多数人都遇到了这样的问题,说是用bash来进行编译就好了!!
试过以后果然啊!!!可是感到很不解,我在shell脚本中第一行明明写上了:#!/bin/bash,难道就没有用吗???网上的解释是这样的:
这些不是注释符,而是说明下面的脚本是在什么shell下面运行的,并且以该shell环境来执行脚本。Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)。三种shell各有优缺点。Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。Linux操作系统缺省的shell是Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。
#!/bin/bash 这句话我试过了,如果去掉还是老样子,根本没有影响的。