The Linux Command Line——8. 从shell眼中看世界

 

 

echo 是一个 shell 内建命令,可以完成非常简单的任务。它将它的文本参数打印到标准输出中。

The Linux Command Line——8. 从shell眼中看世界

 

 

这个命令的作用相当简单明了。传递到 echo 命令的任一个参数都会在(屏幕上)显示出来。

The Linux Command Line——8. 从shell眼中看世界

 

 

为什么 echo 不打印 “*” 呢?如果你回忆起我们所学过的关于通配符的内容,这个 “*” 字符意味着匹配文件名中的任意字符,但在原先的讨论中我们并不知道 shell 是怎样实现这个功能的。简单的答案就是 shell 在 echo 命令被执行前把 “*” 展开成了另外的东西(在这里,就是在当前工作目录下的文件名字)。当回车键被按下时,shell 在命令被执行前在命令行上自动展开任何符合条件的字符,所以 echo 命令的实际参数并不是 “*”,而是它展开后的结果。知道了这个以后,我们就能明白 echo 的行为符合预期。

波浪线展开:

The Linux Command Line——8. 从shell眼中看世界

 

 

 

算术表达式展开:

The Linux Command Line——8. 从shell眼中看世界

算术表达式展开使用这种格式:

The Linux Command Line——8. 从shell眼中看世界

算术表达式只支持整数(全部是数字,不带小数点),但是能执行很多不同的操作。

The Linux Command Line——8. 从shell眼中看世界

 

花括号展开:

The Linux Command Line——8. 从shell眼中看世界

 

 

我们要创建一系列以数值 “年-月” 形式命名的目录。

The Linux Command Line——8. 从shell眼中看世界

 

 

 

参数展开:

The Linux Command Line——8. 从shell眼中看世界

 

 

查看有效的变量列表:

The Linux Command Line——8. 从shell眼中看世界

 

 

 

命令替换:

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

The Linux Command Line——8. 从shell眼中看世界

 

 

我们把 which cp 的执行结果作为一个参数传递给 ls 命令,因此可以在不知道 cp 命令完整路径名的情况下得到它的文件属性列表。

The Linux Command Line——8. 从shell眼中看世界

 

管道线的输出结果成为 file 命令的参数列表。

 

The Linux Command Line——8. 从shell眼中看世界

 

 

 

引用

The Linux Command Line——8. 从shell眼中看世界

 

 

shell 利用单词分割删除掉 echo 命令的参数列表中多余的空格。

 

双引号:

如果你把文本放在双引号中,shell 使用的特殊字符,都失去它们的特殊含义,被当作普通字符来看待。有几个例外:$,\ (反斜杠),和 ‘(倒引号)。这意味着单词分割、路径名展开、波浪线展开和花括号展开都将失效,然而参数展开、算术展开和命令替换仍然执行。使用双引号,我们可以处理包含空格的文件名。

The Linux Command Line——8. 从shell眼中看世界

The Linux Command Line——8. 从shell眼中看世界 

在双引号中,参数展开、算术表达式展开和命令替换仍然有效

The Linux Command Line——8. 从shell眼中看世界

 

 

 

 

单引号

The Linux Command Line——8. 从shell眼中看世界

 

转义字符

在字符之前加上一个反斜杠,在这里叫做转义字符。

The Linux Command Line——8. 从shell眼中看世界

相关文章: