首页 > 代码库 > shell简介
shell简介
shell(外壳)是操作系统与用户进行交互的重要接口(shell也算是Linux的一个软件),我们输入命令时被shell接收,然后shell传送给内核执行,运行结束后,shell会把运行的结果返回给用户。shell程序有很多,如C Shell、Korn Shell、Bash等,作用类似,都是充当用户和系统的接口,只是在语法上稍有差别。Linux中默认使用的shell程序是Bash,可以在/etc/shells下查看系统支持哪些shell程序。
shell脚本的结构
1. shell脚本的后缀名必须是”.sh”,如test.sh
2. shell脚本的内容:
#!/bin/bash //首行固定结构
##The first test shell script. //描述信息1,可以描述这个脚本是用来干什么的
##Written by pzk. //描述信息2,可以描述这个脚本是何时由谁写的
//空一格,下面写shell脚本的执行语句
ls/tmp
echo"This is the first script."
3. 执行shell脚本的方法
[root@root shell]# sh test.sh //执行shell脚本方法一
yum.log yum_save_tx-2016-04-06-17-02lW18Vj.yumtx
This is the first script.
[root@root shell]# bash test.sh //执行shell脚本方法二
yum.log yum_save_tx-2016-04-06-17-02lW18Vj.yumtx
This is the first script. //sh跟bash是软连接的关系
[root@root shell]# chmod a+x test.sh //执行shell脚本方法三
[root@root shell]# ./test.sh //可以写成绝对路径,如/root/shell/test.sh
yum.log yum_save_tx-2016-04-06-17-02lW18Vj.yumtx
This is the first script.
[root@root shell]# sh -x test.sh //参数x可以查看执行过程,可以进行排错
+ ls /tmp
yum.log yum_save_tx-2016-04-06-17-02lW18Vj.yumtx
+ echo ‘This is the first script.‘
This is the first script.
为什么shell脚本的首行要固定为“#!/bin/bash“
这样做的目的是告诉系统一定要使用所指定的Shell程序/bin/bash来执行这个脚本文件。也就是说,你的脚本给别人执行时,如果他当前所使用的Shell是/bin/csh,当他执行脚本的时候系统仍会让/bin/bash来解释并执行这个脚本,因而会出现Shell语法不兼容而产生错误。除此之外,在脚本文件的头部指定Shell程序对开发人员也很有意义,因为他们只要看一下脚本的开头,就可以知道这是用哪种Shell开发的脚本。
注意:只有把”#!/bin/bash”添加到脚本文件中第一行的起始位置才会起作用,在其他任何位置添加都只会被当做注释。
[root@root ~]# file tesh.sh //不加“#!/bin/bash“的文件类型
tesh.sh: ASCII text
[root@root ~]# file tesh.sh //加上“#!/bin/bash“的文件类型
tesh.sh: Bourne-Again shell script text executable
shell简介
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。