Linux中Shell的命令替换用法笔记
命令替换主要是指将命令的标准输出值赋值给某个变量。命令替换属于Shell编程中非常重要的功能,需要熟悉掌握。
命令替换的方式
1、反引号:`命令`
2、$():$(命令)
用法说明:date1=`date` #将date命令值给date1变量
date2=$(date) #将date命令值给date2变量
echo ${date1}
echo ${date2}
注意:如果引用的命令输出的内容包含多行,此时如果不通过引用的方式输出变量,则输出的内容将会删除换行符,文件名之间会使用系统默认的空
来填充,即输出内容只占一行。
例如:ls=`ls -l`
#不引用变量值的输出
echo $ls
输出:
total 20 drwxr-xr-x 4 root root 4096 Apr 6 19:08 DotNetCore drwxr-xr-x 4 root root 4096 Apr 18 19:49 hgm -rw-r--r-- 1 root root 6140 Nov 12 2015 mysql-community-release-el7-5.noarch.rpm drwxr-xr-x 2 root root 4096 Feb 22 14:11 tools
#不引用变量值的输出
echo "$ls"
输出:
total 20
drwxr-xr-x 4 root root 4096 Apr 6 19:08 DotNetCore
drwxr-xr-x 4 root root 4096 Apr 18 19:49 hgm
-rw-r--r-- 1 root root 6140 Nov 12 2015 mysql-community-release-el7-5.noarch.rpm
说明:以上反引号的命令替换可以用$()进行替换,由于考虑到反引号和单引号比较像,很容易出错造成代码难以维护,建议使用${}相对比较清晰。
注意:如果是命令嵌套的话就只能使用$()了,反引号不支持。$()仅在Bash Shell中有效,反引号可以在多种UNIX Shell中可以使用。
比如:file_lines=$(wc -l $(ls | sed -n '1p')) #计算ls命令列出的第一个文件的行数,采用了两层嵌套
输出:162 20190320132917.sql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2018-05-15 【收集】常用的cmd命令
2018-05-15 【收集】常用的cmd命令
2018-05-15 【收集】常用的cmd命令
2017-05-15 ASP.NET MVC5中的数据注解(转载)