脚本是什么意思 拍摄脚本是什么意思

时间:2023-04-26 06:42/span> 作者:tiger 分类: 新知 浏览:9176 评论:0

通过前面三篇的简单介绍

带你了解企业是如何编写脚本的-第一篇:认识脚本

带你了解企业是如何编写脚本的-第2篇:Shell脚本规范

带你了解企业是如何编写脚本的-第3篇:脚本的各种执行方式区别

我们已经可以了解到关于Shell脚本的一些基础知识,俗话说:学而不用则废 用而不学则滞,所以从这篇开始,我们将从最简单的一些案例开始学习!

本期主要知识点:echo 自动化 单双引号、转义

自动化

首先我们在学习脚本之前要搞清楚为啥要学这个东西,是为了装X吗?当然不是,是因为脚本能提高效率,而效率的最高境界就是自动化,所以我们在接下来的学习中可以把“自动化”当做一个目标,抛弃之前的“手动”操作,例如:vim命令,所以本文主要教你如果“抛弃”vim!

echo的作用(简单案例)

echo的主要作用是:打印

例如把“hello world”打印到屏幕上:

打印到屏幕

同时,也支持打印(写入)到文件(当文件不存在则创建)中:

把内容打印到文件中

上面是两个简单的案例,那么现在开始正式了解这个命令的用法。

了解echo

使用Linux最基本的一个技巧就是: --help,所以我们可以先看一下这个echo的--help是怎样的,命令如下:

/bin/echo --help

查看echo命令的帮助信息

从帮助信息中我们可以看到,这个命令的参数是比较少的,所以学起来是非常简单的,下面对这三个参数进行讲解:

了解-n参数

-n参数 不尾随换行符,这个用法比较少见(对于我而言基本不用)

通过下面这段简单的脚本案例你就可以知道它的作用了:

-n在第一行

从结果可以看出,我的脚步内容共有两行,所以按照一般情况下是需要输出两行内容才是正确的,可是在加了-n之后,两行内容直接变成了一行(没看懂是吗?继续往下)

单独一个案例可能不太好理解,尤其是没怎么接触过这个人,没事,我们继续往下看:

-n在第二行

通过调换位置的执行结果对比我们可以发现,当我把-n放在第二行之后,第一行的内容就变成了独立的一行输出,而第二行(有-n)的则跟着终端信息一起输出了,然后终端的格式就被这个-n打乱了,那么为啥会这样呢?这个就涉及到-e的内容了,下面先了解一个-e参数

了解-e参数

在编程语言中,有个叫做“转义”的形容词,通俗点来说,转义其实就是转变含义。

例如我们的笔记本键盘按键中经常用到的感叹号、@、之类的符号,这些符号都需要我们先按“shift”然后再按“1”才能输出一个感叹号。

在这里,shift就相当于我们的转义符,而被转义的对象都会有一个默认值,例如感叹号的默认值是阿拉伯数字:1,只有我们加上转义符(shift)才能得到感叹号(!)。

下面就演示一下:

对比转义与非转义的效果

在Shell语言中,换行的输出是通过: \n 完成的,所以在第一条没有加入-e的输出结果中,\n被当成一个普通的字符串进行输出,而第二行中由于加入了-e,所以\n就变成一个换行的符号,从而实现换行的效果。更多转义符可参考:

  \\    反斜杠
  \a    响铃声
  \b    退格
  \c    不再产生新的输出
  \e    转义符  
  \f    换页
  \n    新行
  \r    回车
  \t    水平制表符
  \v    竖直制表符
  \0NNN   字节数以八进制数 NNN (1至3位)表示
  \xHH    字节数以十六进制数 HH (1至2位)表示

了解单双引号

echo命令的使用常常会和引号进行配合,而引号的用法也有一些区别需要注意,下面分别对不使用引号和使用单双引号进行演示,从而了解他们直接到不同之处。

无引号

不使用引号

从结果来看,如果我们不增加引号,那么只能输出与echo同一行的内容,无法输出第二行的内容

单引号

使用单引号

从结果来看,使用单引号之后,第二行内容被原样输出(变量无法起作用),相比没有引号而言,起码是没有命令错误的提示,能够正常完成输出。

双引号

使用双引号

双引号+转义

  • 从结果来看,使用双引号不仅输出无报错,也能成功的输出变量值,所以三者之间的区别在于:
  • 不使用引号:适用于一行内容的情况,如果需要使用多行内容则运行错误
  • 使用单引号:支持多行输出,但是无法计算变量,适用于无需计算变量的单行或多行场景
  • 使用双引号:支持多行输出,支持变量计算,适用于需要显示/打印变量值得场景,同时可以通过转义指定哪些需要转换,哪些不需要转换,灵活性较高,适用于复杂场景

写入文件内容

上面的案例都是如何实现打印内容,而打印内容也可以分为两种情况,一种是打印到屏幕,一种是写入文件(可以通过组合命令实现同时打印到屏幕和文件),下面演示一下:

首先我们先查看一下本地的一个文件内容:

查看本地文件内容

然后我们使用echo进行打印内容到屏幕:

打印信息到屏幕

接着我们通过echo把这些内容写入到文件[ hello ]中,写入的方式是通过 >> 指向需要进行操作的文件

> 覆盖原内容

>> 追加内容

通过>>追加内容

执行完成之后,通过cat命令查看文件内容可以看到,我们刚才打印到内容已经追加上去了,然后继续使用覆盖的操作

覆盖原内容

可以看到,通过覆盖的方式写入之后,原来的内容都不存在了(所以要谨慎点,多备份,小心数据丢失)

操作全记录:

写入文件

能在脚本中实现什么呢?

下面将通过一个简单的脚本对echo的应用进行一个演示:

!/bin/bash
host=&39;hosts&39;
echo &34;请输入一个IP地址&34;
read ip
echo &34;请输入域名&34;
read domain
echo -e &34;即将写入下面的主机映射信息到hosts文件,输入y确认写入
$ip $domain &34; 
read Y
echo -e &34;当前文件内容&34;
cat $host
if [[ &34;$Y&34; == &39;y&39; ]];then
        echo &34;$ip $domain&34; >> $host
        echo &34;修改后内容如下&34;
        cat $host
else
        echo &39;取消写入&39;
fi

通过echo写入域名映射信息

总结:

echo命令不仅可以输出提示信息,使得脚本的使用交互更加友好,同时在一定程度上还可以代替vim进行一些写入操作,参数较少,学习起来相对比较简单,而平时使用终端也不用每次都通过vim写入内容到文件中,大大的提高了效率,但是要注意覆盖与追加的语法,切勿混用!

此外,echo命令还经常用于获取一些变量值,例如获取当前用户名、当前使用的Shell、当前的path路径之类:

获取系统变量

通过echo命令可以让我们在使用Linux系统的时候大大提高效率,同时在脚本中也是经常需要使用的一个工具,但是只用echo就想抛弃vim是肯定不可能的,后续将会介绍更多工具的用法实现完全抛弃vim,实现全自动化修改。

相关链接:

Linux、编程界的哆啦A梦网站,你想要的任何命令这里都有

Shell脚本高级语法:如何更方便的打印彩色字体

文章评论