shell简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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脚本的方法

[[email protected] shell]# sh test.sh                             //执行shell脚本方法一
yum.log yum_save_tx-2016-04-06-17-02lW18Vj.yumtx
This is the first script.

[[email protected] shell]# bash test.sh                           //执行shell脚本方法二
yum.log yum_save_tx-2016-04-06-17-02lW18Vj.yumtx
This is the first script.                                 //sh跟bash是软连接的关系

[[email protected] shell]# chmod a+x test.sh                      //执行shell脚本方法三
[[email protected] shell]# ./test.sh                              //可以写成绝对路径,如/root/shell/test.sh
yum.log yum_save_tx-2016-04-06-17-02lW18Vj.yumtx
This is the first script.

[[email protected] 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”添加到脚本文件中第一行的起始位置才会起作用,在其他任何位置添加都只会被当做注释。

[[email protected] ~]# file tesh.sh    //不加“#!/bin/bash“的文件类型
tesh.sh: ASCII text

[[email protected] ~]# file tesh.sh    //加上“#!/bin/bash“的文件类型
tesh.sh: Bourne-Again shell script text executable

 

  

 



以上是关于shell简介的主要内容,如果未能解决你的问题,请参考以下文章

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]

shell 脚本 片段

vue2.0 代码功能片段

nodejs常用代码片段

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

sh shell片段