在shell编程中,shell脚本开头第一句通常是#!/bin/bash,关于本句的理解,网上存在争论,今天我做了点实验,结果证明本句没有任何意思,只是编程人员的一种规范化的编程格式。
"#"这个符号在shell脚本中是注销符号后面语句的意思,我编写了如下一段代码,放在test.sh文件中,如下:
//*******test.sh******
#slz
//*******end*********
运行:
#> sh test.sh
运行正确,表明脚本内的代码#slz没有执行,否则应该会报错。
"!"这个符号只是格式,没有什么实际含义,也没有作用,我编写如下代码测试:
//********test1.sh*******
#!slz
//********end************
运行:
#> sh test1.sh
运行没有报错,表示脚本中内容已被注释。
//**********test2.sh*******
!slz
//**********end************
运行:
#> sh test2.sh
出错,表示"!"只是普通字符,没有特别含义。有人说本句是为了解释本程序是bash shell脚本程序,并且让系统在/bin/bash下寻找解释程序。
我把本句删除,照样可以运行,如下:
//*********test3.sh*********
echo "hello world"
//*********end***************
运行:
#> sh test3.sh
运行成功,终端显示hello world说明#!/bin/bash并不是在告诉系统解释器的位置的作用。
综上验证,#!/bin/bash这一句没有任何意义,为了遵守规范,还是加上,有利于加强程序的可读性。