Linux下Shell脚本中几种基本命令的替换区别

所属分类: 脚本专栏 / linux shell 阅读数: 608
收藏 0 赞 0 分享

Part 1 : ` command `

这是 “命令标准输出作为函数标准输入” 操作方法之一,有很大的弊端以及不安全的地方。

缺点一:比较陈旧。

缺点二:容易与单引号混淆。(其实它是你键盘“!”左边那个键)

Part 1.5 ` command``与 $(command) 俩者区别

直接看几张图吧,看这图解释他们区别...

大家可以看到俩种表达方式,分别是代表命令直接执行和嵌套执行。

我们发现:执行`` $() 是相同的。

附,其实这里有个小bug...( 橙色框框 ):即你怎么知道嵌套执行计算机是真的镶嵌执行的呢?

所以我又截图一张...可以看到直接执行的情况下计算机确实是按照从左到右这样执行的。

所以得出证明,嵌套执行计算机是真的镶嵌执行,我们操作是确实有效的!

他们支持多层嵌套,对运维工作有不可言语的巨大作用。

Part 2 : $(command)

这是 “命令标准输出作为函数标准输入” 操作方法之二,使用这种方法的人也最多!

这种方法的优点是:以$(command)形式可以互相嵌套多个命令扩展。

Part 3 : ${command}

那具体是什么意思呢?简而言之,将变量函数$()进行替换以\${}输出

嗯...意思是到了但是还不正确。。但是我们现在知道俩点关于${}

第一点:$() 是用来运行命令的,不是用来运行替换变量的。简而言之,\$()就是用来执行命令,其他干不了

第二点:${} 是用来替换变量的。但是它不能给你执行变量替换,仅仅能帮\$()信息读出来。

第三点:echo ${#name} 可以统计替换变量长度单位。

结论:$()用来执行;\${}用来变量替换,但不能执行。

Part 4 : $(){command}

关于这点,这里就不细说了。

结论:$(){command}定义了个方法名叫\$,这个方法执行了command命令

最后结文:

` command``$(command) 俩者无区别,都是执行命令。“命令标准输出作为函数标准输入”

\${command} $(){command} 俩者类似。前者用来读取变量替换内容,但不能执行。

唔...加一点话。群里的朋友给我提供了一份RHCE的官方手册,上面对“命令标准输出作为函数标准输入”有一个简单的解释,即:命令替换。

命令替换允许命令的输出替换命令本身。当命令包含前导美元符号和括号$(command)或者反引号 command时,就会发生命令替换。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

更多精彩内容其他人还在看

linux whatis与whatis database 使用及查询方法(man使用实例)

在学习man命令时候,估计很多朋友都发现有man –f ,man –k 参数,可以查出很多数据。这些有的与man手册页相同,有些不是属于手册页的。它们数据怎么收集来的,并且whatis是怎么样工作的
收藏 0 赞 0 分享

linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random)

这篇文章主要介绍了linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell命令快捷获得系统帮助(一)[man-pages定义规范]

linux命令帮助,一般有2种,命令自身代码里面带有使用帮助说明,这种一般很精简,太长了,程序自身的大小以及日常维护不方便。还有一种,就是带有帮助文件,类似windows的chm格式文件。下面我说下这2种怎么样查阅
收藏 0 赞 0 分享

linux shell实现随机数几种方法分享(date,random,uuid)

这篇文章主要介绍了linux shell实现随机数多种方法(date,random,uuid),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell 脚本实现tcp/upd协议通讯(重定向应用)

这篇文章主要介绍了linux shell 脚本实现tcp/upd协议通讯(重定向应用),需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell数据重定向(输入重定向与输出重定向)详细分析

这篇文章主要介绍了linux shell数据重定向(输入重定向与输出重定向)详细分析,需要的朋友可以参考下
收藏 0 赞 0 分享

linux shell 管道命令(pipe)使用及与shell重定向区别

这篇文章主要介绍了linux shell 管道命令(pipe)使用及与shell重定向区别,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux下使用tcpdump抓包的实现方法

tcpdump是Linux下面的一个开源的抓包工具,和Windows下面的wireshark抓包工具一样, 支持抓取指定网口、指定目的地址、指定源地址、指定端口、指定协议的数据。这篇文章主要介绍了Linux下使用tcpdump抓包的实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

零基础入门篇之Linux及Arm-Linux程序开发笔记

这篇文章主要介绍了零基础入门篇之Linux及Arm-Linux程序开发笔记,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux 中 CURL常用命令详解

这篇文章主要介绍了Linux 中 CURL常用命令详解,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多