快乐的linux命令行-从shell眼中看世界

整理自《快乐的linux命令行一书》。
linux系统版本: Ubuntu 17.04

本章,我们将使用echo命令(该命令能显示一行文本)探究一些命令行的特性。

1、字符展开

echo命令可以在标准输出中打印出它的文本参数:


echo1.png

我们再试试另一个例子:


咦?这里为什么不输出“ ”呢,回想我们之前所学过的关于通配符的内容,这个“”字符意味着匹配文件名中的任意字符,这里shell就利用了字符展开的特性,在这个例子中将“*”展开成当前工作目录下的文件名字。

2、路径名展开

这种通配符的工作机制叫做路径名展开,我们再给出多一些例子:


快乐的linux命令行-从shell眼中看世界_第1张图片
路径名展开.png

3、波浪线展开

我们回想一下之前介绍过的命令,当它用在一个单词的开头时,它会展开成指定用户的主目录名,如果没有指定用户名,则是当前用户的主目录,如果后面找不到相应的用户,则原样输出:

快乐的linux命令行-从shell眼中看世界_第2张图片
波浪线展开.png

4、算术表达式展开

算数表达式的展开使用如下的格式

$((expression))

算数表达式支持加(+)、减(-)、乘()、除(/)、取余(%)、幂(*)运算。算数表达式中的空格并不重要,并且表达式可以嵌套。

快乐的linux命令行-从shell眼中看世界_第3张图片
算术表达式展开.png

5、花括号展开

花括号可能是最神奇的展开方式了,我们从下面的例子中就可以看到其神奇之处:


快乐的linux命令行-从shell眼中看世界_第4张图片
花括号展开1.png

可以看到,花括号中的每一个字符串都与外面的字符串结合,从而返回了多个字符串,有点类似于笛卡尔积的意思。
我们再看下面的例子,使用花括号来创建一系列的文件夹,可以看到,在一个参数中使用两个花括号,类似于循环的嵌套,输出m*n个结果:


快乐的linux命令行-从shell眼中看世界_第5张图片
花括号展开2.png

6、参数展开

这里我们只简单介绍一下参数展开,不涉及过多的知识,后面会陆续讲到,比如我们有一个USER变量保存了你的用户名,我们来查看:


参数展开.png

中间第二个命令用于查看可用的参数列表。

7、命令替换

命令替换允许我们把一个命令的输出作为一个展开模式来使用:


命令替换.png

8、引用

下面我们来学习一下如何控制展开。
首先看下面一个例子,$1被认为是一个变量,而这个变量没有值,所以被当做了一个空字符串。


我们首先来看引用的第一种类型,双引号,在双引号中,除了$、\、‘之外,其他特殊字符失去特殊含义,被当做普通字符。观察下面的命令:


快乐的linux命令行-从shell眼中看世界_第6张图片
双引号.png

如果想要禁止所有的展开,我们需要使用单引号。我们通过下面的例子对比一下:

快乐的linux命令行-从shell眼中看世界_第7张图片
单引号.png

9、转义字符

转移字符相信大家应该都不陌生,我们通过下面的例子来体会一下:


转义字符.png

如果你喜欢我写的文章,可以帮忙给小编点个赞或者加个关注,我一定会互粉的!
如果大家对linux感兴趣,欢迎跟小编进行交流,小编微信为sxw2251,加我要写好备注哟!


快乐的linux命令行-从shell眼中看世界_第8张图片
我的微信

你可能感兴趣的:(快乐的linux命令行-从shell眼中看世界)