摘要 腾兴网为您分享:linux shell中#bin/sh的理解,支付旭尊,小熊到家,天天美剧,淘金宝等软件知识,以及维棠flv视频软件,usb抓包工具,红警2无敌,ucbug造梦西游4,壁纸工作室,亿方云,倍速英语点读,粤视,小米路由器2,flv剪辑,部编版七年级语文上册电子课本,家校共育平台,门萨智商测试,傲视千雄,玫瑰镇等软件it资讯,欢迎关注腾兴网。在shell编程的基础知识中,介绍说shell程序必须以#!/bin/sh开始,也就认为是这样了。 虽然知道在shell中以#开始的语句都是注释,但也从没认为#!/bin/sh也是注释,就像对C语言程序必须有...
在shell编程的基础知识中,介绍说shell程序必须以"#!/bin/sh"开始,也就认为是这样了。
虽然知道在shell中以"#"开始的语句都是注释,但也从没认为"#!/bin/sh"也是注释,就像对C语言程序必须有main函数一样毫无怀疑。
但前些时候又听说"#!/bin/sh"也是注释,可有可无,当时觉得真是一个失败,连基本的语法都分不清。
前几天借了一本书,才真正认识了"#!/bin/sh"。
shell编程是以"#"为注释,但对"#!/bin/sh"却不是。
"#!/bin/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在。
如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell。
比如:如果脚本被编写为在Korn Linux中运行,而默认运行shell脚本的为C shell csh,则上述脚本在执行过程中很可能失败。
所以建议大家就把"#!/bin/sh"当成C 语言的main函数一样,写shell必须有,以使shell程序更严密。
即: #!/bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。
其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本。
比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,甚至/bin/echo等等。
真的能写一个/bin/echo的脚本文件吗?例子:
代码:
#!/bin/echo –e
这只有一行的程序(实际上它也只能是一行,echo程序并不是被设计成像awk那样的编程语言,能写成源程序文件)命名为myecho,加上权限后执行它:
代码:
$ ./myecho "hi\a" ./myecho hi
如果echo支持-e选项并且你工作的环境还算安静,在得到上面的结果时,应该听到清脆的终端响铃。但这种程序是毫无作用的。
相关推荐