shell学习错误之二

今儿继续学习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 这句话我试过了,如果去掉还是老样子,根本没有影响的。

你可能感兴趣的:(shell学习错误之二)