echo
Display a line of text(显示一行文本)
Display a line of text(显示一行文本)
这个命令的作用相当简单明了。传递到 echo 命令的任一个参数都会在(屏幕上)显示出来。
小插曲:
每当你输入一个命令,然后按下 enter 键后,bash 会在执行你的命令之前对输入 的字符进行一个预处理。例如一个简单的字符”*”, 对 shell 来说有着多么丰富的涵义。这背后的的过程叫做(字符)展开。通过展开, 你输入的字符,在 shell 对它起作用之前,会展开成为别的字符。
为了说明这一点 ,以下是 echo 命令案例:
案例 | 意义 |
| 传递到 echo 命令的参数在屏幕上显示出来 |
| (字符)展开,显示当前目录下所有(非隐藏)目录及文件名; 这个”*“字符意味着匹配文件名中的任意字符 |
echo D* | 显示当前目录下以D打头的所有(非隐藏)目录及文件名; |
| 显示当前目录下以大写字母打头的所有(非隐藏)目录及文件名; |
| (路径)展开,显示拼配到的路径名 |
| 算术表达式展开,显示算术表达式(2+2)的结果,算术表达式展开格式:$((expression)) |
| 花括号展开,显示:Number_1 Number_2 Number_3 Number_4 Number_5 |
| 花括号展开嵌套使用,显示:aA1b aA2b aB3b aB4b |
| 参数展开,显示”USER”的变量的内容。要查看有效的变量列表可以使用printenv |
| 命令替换,允许我们把一个命令的输出作为一个展开模式来使用. 显示ls命令的执行结果 |
mkdir $(echo dir_{1..3}) | 批量创建 dir_1、dir_2、dir_3目录 |
| 转义字符来显示特殊字符,$转义字符\$ |
each 单引号和双引号的使用区别
双引号:放在双引号中的文本,(shell 使用的特殊字符)除了 $,\ (反斜杠),和 `(倒引号)之外,均被当作普通字符来看待(失去它们的特殊含义)。
注意:双引号中,参数展开,算术表达式展开,和命令替换仍然有效。
单引号:禁止所有的展开,放在单引号内的所有文本均被当作普通字符来看待(失去它们的特殊含义)。