linux学习与实践(3)--认识shell的解释行(Shebang)
2014-05-14 13:06
351 查看
Shebang(也称为Hashbang)是一个由井号和叹号构成的字符串行(
如下列出了一些典型的shebang解释器指令:
通常出现在linux的shell脚本第一行,作为解释行,告诉解释器shell的执行方式;
如果第一行中:第一个字符非#:表示这是一个bash脚本。
第一个字符是#,但第二个字符不是!,表示这是一个csh脚本。
第一个字符是#,且第二个字符是!,举个例子,
如果第一行为:#!/urs/bin/python2.2
表示调用其后指定的/usr/bin/python2.2程序来执行以下的这个脚本。
执行方式说明;
如果指定了解释行, xx.sh 或者 ./xx.sh则按解释行指定的来执行;
如果没有指定解释行,xx.sh 或者 ./xx.sh则按当前用户默认shell来执行,可以是csh或bash等;
如果指定了解释行,但执行 csh xx.sh 或 csh -x xx.sh,则忽略解释行,这时改为默认csh,当然你也可以用tcsh ,sh等
好处;
个人觉的这样子更加规范;
解释器指令允许脚本和数据文件充当系统命令,无需在调用时由用户指定解释器,从而对用户和其它程序隐藏其实现细节;
实例问题;
在centos系统中,手动修改为csh,写一个简单脚本,如下所示,执行xx.sh或csh xx.sh老提示,第7行,vcs command not found,如果用source xx.sh或去掉第一行,则可以识别。
实例解决;
如上问题,仔细debug时发现,第5行打印信息和系统中env path不一致,恍然大悟,原来问题出在.cshrc文件,把第24行注释即可。
REF:1.http://zh.wikipedia.org/wiki/Shebang
2.http://kms.lenovots.com/kb/article.php?id=9406
#!),其出现在文本文件的第一行的前两个字符。
如下列出了一些典型的shebang解释器指令:
#!/bin/sh—使用
sh,即Bourne shell或其它兼容shell执行脚本
#!/bin/csh—使用
csh,即C shell执行
#!/usr/bin/perl -w—使用带警告的Perl执行
#!/usr/bin/python -O—使用具有代码优化的Python执行
#!/usr/bin/php—使用PHP的命令行解释器执行
通常出现在linux的shell脚本第一行,作为解释行,告诉解释器shell的执行方式;
如果第一行中:第一个字符非#:表示这是一个bash脚本。
第一个字符是#,但第二个字符不是!,表示这是一个csh脚本。
第一个字符是#,且第二个字符是!,举个例子,
如果第一行为:#!/urs/bin/python2.2
表示调用其后指定的/usr/bin/python2.2程序来执行以下的这个脚本。
执行方式说明;
如果指定了解释行, xx.sh 或者 ./xx.sh则按解释行指定的来执行;
如果没有指定解释行,xx.sh 或者 ./xx.sh则按当前用户默认shell来执行,可以是csh或bash等;
如果指定了解释行,但执行 csh xx.sh 或 csh -x xx.sh,则忽略解释行,这时改为默认csh,当然你也可以用tcsh ,sh等
好处;
个人觉的这样子更加规范;
解释器指令允许脚本和数据文件充当系统命令,无需在调用时由用户指定解释器,从而对用户和其它程序隐藏其实现细节;
实例问题;
在centos系统中,手动修改为csh,写一个简单脚本,如下所示,执行xx.sh或csh xx.sh老提示,第7行,vcs command not found,如果用source xx.sh或去掉第一行,则可以识别。
实例解决;
如上问题,仔细debug时发现,第5行打印信息和系统中env path不一致,恍然大悟,原来问题出在.cshrc文件,把第24行注释即可。
REF:1.http://zh.wikipedia.org/wiki/Shebang
2.http://kms.lenovots.com/kb/article.php?id=9406
相关文章推荐
- Unix_Linux学习(5)——认识Bash,shell(1)
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第11章 认识与学习 bash
- linux学习与实践(1)--认识linux shell
- 轻松学习Linux之认识Shell
- Linux学习笔记 认识bash这个shell
- 轻松学习Linux之认识Shell
- 轻松学习Linux之认识Shell
- Linux学习(二十一)Shell基础(一)认识shell、命令历史、命令补全、别名、通配符、管道符与前后台控制
- 写得蛮好的linux学习笔记(压缩命令,vi一般用法,认识SHELL,正规表示法)
- 写得蛮好的linux学习笔记五-认识SHELL(收藏)
- Unix_Linux学习(5)——认识Bash,shell(1)
- Linux 学习之路:认识shell和bash
- Linux实践工程师学习笔记十
- Linux实践工程师学习笔记二
- Linux实践工程师学习笔记十九
- Linux实践工程师学习笔记四
- Linux实践工程师学习笔记三
- Linux实践工程师学习笔记十五
- Linux实践工程师学习笔记九
- Linux实践工程师学习笔记十八