ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2021-04-19 19:01:28  阅读:161  来源: 互联网

标签:shell 双引号 echo 命令 Command Linux 参数 展开


 

 

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

 

 

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

 

 

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

波浪线展开:

 

 

 

算术表达式展开:

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

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

 

花括号展开:

 

 

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

 

 

 

参数展开:

 

 

查看有效的变量列表:

 

 

 

命令替换:

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

 

 

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

 

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

 

 

 

 

引用

 

 

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

 

双引号:

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

 

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

 

 

 

 

单引号

 

转义字符

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

标签:shell,双引号,echo,命令,Command,Linux,参数,展开
来源: https://www.cnblogs.com/shizhe99/p/14678247.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有