shell脚本的命令代换

2024-02-03 23:32
文章标签 命令 shell 脚本 代换

本文主要是介绍shell脚本的命令代换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

命令代换

一、命令代换
命令代换是指先完成引号或者括号中的命令行,然后将其结果替换出来,在重新组成新的命令行。shell脚本中用于命令行代换的一反引号(` `),和$()。那么这两个又有什么不同呢?

运行后:

表面上看起来两个结果并没有什么不同,但仔细分析会发现有以下不同点。
反引号(` `)的缺点
(a)它非常容易和单引号混淆
(b)它会对\进行跳脱处理,而$()不会
如下:

这里我们可以看出,shell里的单引号会保持所有自负的字面值,所以引号里的执行结果应该是\。但用反引号输出的结果是\,说明是由于它对\进行了跳脱处理。
一般情况下建议使用$(),这样比较清楚直观
$()的缺点是:
并不是所有的类unix系统都支持这种形式,但反引号是支持的,也就是说移植性不如反引号。
算术代换:$(())
用于算术计算,$(())中的shell变量取值将转换成整数

运行结果:


二、eval命令
功能说明:告知shell取出eval的参数,重新运算求出参数的内容。
补充说明:eval可读取一连串的参数,然后再依照参数本身的特性来执行。
eval执行命令行前扫描两次,再次运算求出参数内容,eval是对bash shell命令行处理规则的灵活应用,进而构造“智能”命令实现复杂功能。
1.eval命令也可以用于回显简单变量,不一定是复杂变量。

2.执行含有字符串的命令
首先创建一个名为test的文件,在这个文件中输入如下文本;

接着将test赋给变量myfile; 此时echo该变量,发现无法列出test文件中的内容; 调用eval命令,发现可以显示test文本中的内容。

从上面的结果可以看出,使用eval命令不但可以置换该变量,还能够执行相应的命令。第一次扫描进行了变量置换,第二次扫描执行了该字符串中所包含的命令cat test。
3.用来显示出传递给脚本的最后一个参数
在上面的脚本中,eval命令首先$$#解析为当前shell的参数个数,第二次扫描时得到最后一个参数。

运行后

这篇关于shell脚本的命令代换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675749

相关文章

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Linux grep 命令的使用指南

《Linuxgrep命令的使用指南》本文给大家介绍Linuxgrep命令的使用指南,包括基础搜索语法、实践指南,感兴趣的朋友跟随小编一起看看吧... 目录linux grep 命令全面使用指南一、基础搜索语法1. 基本文本搜索2. 多文件搜索二、常用选项详解1. 输出控制选项2. 上下文控制选项三、正则表达

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹