shell脚本中命令代换:反引号、$()、eval区别
来源:互联网 发布:js中如何定义数组 编辑:程序博客网 时间:2024/05/17 15:21
在说eval、反引号以及${}的区别之前,先看看什么是命令代换?
所谓命令代换其实是:shell执行命令并将命令替换部分替换为执行该命令后的结果(先执行该命令,然后用结果代换到命令行中)
而在命令代换方式又分了三种:
1) 反引号(••):就是‘~’处的那个符号,
2) $():
3) eval:
接下来分别看看他们功能和作用:
- 反引号(••):就是‘~’处的那个符号,反引号执行命令代换时,会对命令中包含的‘\’进行跳脱处理;
- $():相当于C语言当中的();用于算术运算
以下例子说明反引号和$()的区别:
例子1:
因为shell里的单引号会保持所有字符的字面值,所以引号里的执行结果应该是 \ ;
但是用反引号输出的结果却是 \ ,这就是由于它对 \ 进行了跳脱处理。
例子2:
两者执行结果一样,都是执行命令并将命令替换部分替换为执行该命令后的结果;
3、 eval:
1) 功能:告知shell取出eval的参数,重新运算求出参数的内容;
语法形式:eval [参数] —–其中参数不限数目,彼此之间用分号分开。
a) eval可读取一连串的参数,然后再依参数本身的特性来执行。
b) ‘参数’是在终端上键入的一条普通命令行。然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它两次,再次运算求出参数的内容。
注意:如果变量中包含任何需要shell直接在命令行中看到的字符(不是替换的结果),就可以使用eval。命令行结束符(; | &),I/o重定向符(< >)和引号就属于对shell具有特殊意义的符号,必须直接出现在命令行中。
2).取得最后一个参数
例子1:
例子2:
3).以下示意如何用eval命令创建指向变量的“指针”:
阅读全文
0 1
- shell脚本中命令代换:反引号、$()、eval区别
- shell中反引号和$()的区别以及eval命令
- 【shell脚本】命令代换 ` `, $( ) ,整数运算$(( )),变量代换${ },eval命令
- shell脚本中倒引号,$(), eval的区别
- Shell脚本中命令代换
- Linux:shell脚本之命令替换(eval,反引号和$())
- shell 脚本中双引号 单引号 反引号 的区别
- shell 脚本中双引号 单引号 反引号 的区别
- shell 脚本中双引号 单引号 反引号 的区别
- shell 脚本中双引号、单引号、反引号的区别
- Shell脚本中反引号`和$()的区别
- shell 脚本中双引号 单引号 反引号 的区别
- shell 脚本中双引号、单引号、反引号的区别
- 【shell脚本】eval命令详解及命令代换
- [shell 脚本]eval命令和命令代换 ` `和 $()
- 【Linux】shell脚本下的命令代换` `和$() 以及eval
- shell中的eval以及与 反引号``、$()的区别
- shell脚本命令代换
- 18_cookie(四_补充)
- 19_SevletContext_chat剪辑
- LeetCode-551. Student Attendance Record I (Java)
- 20_chat2
- 多线程
- shell脚本中命令代换:反引号、$()、eval区别
- 21_ServletContext补充
- 如何从源码编译SITL
- C语言获取系统时间方法
- Volatile关键字解读(一)
- 设计模式之适配器模式
- 利用Excel将二维表转换为一维表
- H.264标准(三)F4V封装格式详解
- Django 实现分页显示