栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Shell编程基础(第三篇:命令替换)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell编程基础(第三篇:命令替换)

前言

命令替换,bash编程的核心技术点之一,通过命令替换我们可以获取任何命令的标准输出,以此做进行更复杂的业务逻辑

概念

命令替换,也称作子命令替换,可以获取到命令的标准输出

2种方式

1、反引号

temp=`date`

echo $temp

2、$()

temp=$(date)

echo $temp

两种方式均为命令替换的标准语法,反引号是之前的语法规范,$()则是后来新增加的规范,按照技术至上的原则,我觉得使用哪种方式都可以,但是$()可以有更复杂的用法,继续往下看!

``与$()的区别

$()方式的能力更强,它支持嵌套语法,而反引号``方式不支持嵌套,举个例子

temp=$(seq $(ls -1 | wc -l))

echo $temp

seq命令会根据传送给它的参数,返回从1开始的序列,$()支持嵌套,所以在$()内部的$()将先执行

命令替换嵌套的执行过程
temp=$(seq $(ls -1 | wc -l))

echo $temp

等价于

num=$(ls -l | wc -l)

temp=$(seq $num)

echo $temp

嵌套在内部的命令替换会先执行,执行完毕后,才是外部的命令替换

总结

1、命令替换,可以执行,并且获取标准输出,无法获取标准错误

2、命令替换由bash解释器程序先执行的,所以我们可以根据需将其放置在命令行的任意位置

3、记住这句话:bash先执行命令替换,然后才会执行命令(同变量替换一样)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/741167.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号