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

相关文章

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb