1. 首页
  2. IT小技能

从零开始,看懂shell脚本(1)

无他,就为了让小伙伴能看懂,每天都在执行的各种shell一键脚本到底在做什么。

什么是shell脚本

shell是一个和linux系统交互的软件工具,你执行的每一条linux命令都是在shell下执行,例如你敲击以下命令:

echo "Hello World"

屏幕上则会输出”Hello World”的文字,这其实就是shell解释执行了echo命令,而”Hello World”是echo的参数,所以这条命令的执行结果是:在屏幕中输出”Hello World”字符。

那么什么是shell脚本呢,shell脚本就是将多条命令结合在一起的一段代码程序,但shell脚本不是单纯的把一些命令集合起来,而一般来说命令之间是有逻辑关系的。例如你使用的本站的各类一键脚本,就是shell脚本,这些脚本都可以拆分成一条条的命令来执行,我们只是为了方便省心,把这些命令稍微变化一点形式,形成了shell脚本。

shell脚本的运行方式

shell脚本有两种执行方式,一种是作为可执行程序运行,一种是作为shell解释器的参数执行。首先看一下这两种形式,然后再分别解释一下。

#可执行程序方式
chmod +x shell.sh
./shell.sh

#解释器参数方式一
sh shell.sh
#解释器参数方式二
bash shell.sh

shell.sh是一个shell脚本文件,更常用的获取shell脚本文件的方式是放在网络上,通过wget或curl下载到本地,例如本站的一键脚本都是以wget或curl开头,这其实是把云端的shell脚本文件下载到本地,接下来就是运行shell脚本,也就是我们讲的这两种运行方式。

可执行程序方式解释

chmod +x shell.sh

第一条命令是赋予shell.sh可执行权限,这时你使用ls命令查看当前路径下的文件,会发现shell.sh文件名会变成绿色,这是拥有了可执行权限的标志

./shell.sh

第二条命令就是执行shell.sh的意思,./是指的当前路径下找到shell.sh来执行。

解释器参数方式解释

你会看到解释器方式有两种方法,使用sh和使用bash,sh和bash他们都是linux的shell解释器的命令,一般情况下我们可以理解这两个命令是一样的,因为大部分linux系统默认都是使用bash作为默认的shell,而且sh也仅是指向bash的一条链接而已(可以理解为windows系统下的快捷方式)。

这两者的用法都是命令后带上shell脚本作为参数来运行。

一个简单的shell脚本例子

#!/bin/bash

#这是一个示例,#号代表注释,并不执行本行

echo "请输入你的名字"
read name
echo "你好,$name"

以上是一个简单的小栗子,我们一句一句来解释一下。

#!/bin/bash

首先作为一个shell脚本,你需要声明一下使用什么解释器,#!是约定的写法,后面跟的/bin/bash就是声明了解释器。

#这是一个示例,#号代表注释,并不执行本行

这一句就是一个注释,shell脚本里用#开头的都表示注释掉,并不会被解释和执行。

echo "请输入你的名字"

这里是在屏幕上显示“请输入你的名字”的提示

read name

这里是shell接收标准输入,到这里shell会暂停,等待你输入内容并回车后才会继续向下执行,同时name将会被赋值为你输入的内容,这个name在shell中叫做变量。

echo "你好,$name"

这里是输出“你好”两个字,并带上你输入的内容,shell里我们使用${变量名}这样的形式获取变量内容,当然在没有歧义的情况下大括号可以省略,就如本句里的$name。

下面是执行例子的截图

从零开始,看懂shell脚本(1)

好了今天就讲一点关于shell脚本的入门知识,相信你一定会有所收获。

原创文章,作者:atrandys,如若转载,请注明出处:https://www.atrandys.com/2020/2203.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论列表(2条)

  • ah ha 什么都不必说 2020年1月9日 下午6:30

    学会shell是我的目标之一,期待大神教学。

  • T 2020年1月9日 下午5:41

    刚好来刷刷有什么什么新的更新,就发现了你准备写shell.小伙伴们可有福咯~