文章目录

  • 1.命令简介
  • 2.命令格式
  • 3.选项说明
  • 4.常用示例
  • 参考文献

1.命令简介

eval 属 Shell 内建命令,通过连接参数构造命令。

使用空格分隔每个参数,构造的命令应由 Shell 读取和执行。

eval 会对后面的命令进行两遍扫描。如果第一遍扫描后,命令是个普通命令,则执行此命令;如果命令中含有变量的间接引用,则保证间接引用的语义。也就是说,eval 命令将会首先扫描命令行进行所有的置换,然后再执行该命令。

2.命令格式

eval [arg...]

eval 的返回值是其后面的命令退出状态。如果没有参数或只有空参数,eval 返回 0。

3.选项说明

None。

4.常用示例

(1)回显简单变量。

NAME=foo
echo $NAME
fooeval echo $NAME
foo

(2)先替换变量再执行命令。

cat test.txt
Hello World!command="cat test.txt"; echo $command
cat test.txteval $command
Hello World!

(3)获取传给脚本或函数的最后一个参数。

我们知道 Shell 中使用特殊字符 $# 可以获取传递给脚本或函数的参数个数,使用$n获取参数,n 为数字,$1 表示第一个参数,$2 表示第二个参数,所以$$#表示最后一个参数。

cat test.sh
#!/usr/bin/bash
echo \$$#
eval echo \$$#./test.sh firstarg lastarg
$2
lastarg

参考文献

eval(1) manual - linux.org
``和$()的区别及eval详解 - CSDN

eval builtin command相关推荐

  1. linux_系统帮助propos/whatis/which/whereis/man/info/help...)/bashzsh/build-in command帮助/wildcard/regex

    文章目录 reference link 关于WSL windows terminal+WSL aprospos whatis linux_man_wildcard/whatis/正则匹配/匹配以key ...

  2. 在linux中如何高效的使用帮助

    如何正确的获取Linux中命令的帮助 Linux中常用的命令很多,大家想要全部记住显然是不太现实的,所以在忘记命令的使用方法时人如何正确的获取命令的帮助就显得至关重要了,但是大家应该也发现了,正确的获 ...

  3. Zsh vs. Bash不完全对比解析,zsh是一种更强大的被成为“终极”的Shell

    https://www.zhihu.com/question/21418449 Mort | Zsh vs. Bash:不完全对比解析(1) 2014-10-07  bdpqlxz Zsh和Bash, ...

  4. The python debugger调试(PDB)的简介

    学习Python调试,最好的资料当然是官方文档和(pdb)help了,这里有篇博文,还有下面的 PDB cheat-sheet 1 在python中使用pdb模块可以进行调试 import pdb p ...

  5. linux终端cd未找到命令,为什么`which`命令不能用于`cd`?我也找不到`cd`的可执行文件!...

    问题描述 我尝试了which cd,它没有给出路径,而是返回退出代码1(用echo $?检查). coreutil cd本身正在工作,所以可执行文件应该在那里,对吧?我还为cd运行了find,但没有显 ...

  6. bash内置文档(ubuntu20.10)

    系统 用的是ubuntu20.10 命令 compgen -b #这个简单 man bash-builtins #显示得细节已经卸载下面文档中 文档 BASH-BUILTINS(7) Miscella ...

  7. csapp之lab:shell lab

    实验目的 shell lab主要目的是为了熟悉进程控制和信号.具体来说需要比对16个test和rtest文件的输出,实现五个函数: void eval(char *cmdline):分析命令,并派生子 ...

  8. 哈工大计算机系统lab7——微壳

          实验报告 实 验(七) 题     目 TinyShell 微壳 专       业 计算机类 学    号 ********** 班    级 1903003 学       生 李*涵 ...

  9. 深入理解计算机系统(CSAPP)含lab详解 完结

    文章目录 深入理解计算机操作系统-第一章 1.1 信息就是位 + 上下文 1.2 程序被其他程序翻译成不同的格式 1.3 了解编译系统如何工作是大有益处的 1.4 处理器读并解释储存在内存中的指令 1 ...

最新文章

  1. ReactiveCocoa代码实践之-更多思考
  2. Android新手系列教程(申明:来源于网络)
  3. 真香!GitHub刚刚宣布:私有库免费啦!
  4. boost::stacktrace::detail::void_ptr_cast相关的测试程序
  5. MySQL中merge表存储引擎用法
  6. 【MySQL】计算 TPS,QPS 的方式
  7. spark mongo java_Spark Mongodb集成 - Python版
  8. 计算机考试单招考试面试,单招计算机面试题.docx
  9. 在项目中配置PageHelper插件时遇到类型转换异常
  10. PostgreSQL 9.6.6启动
  11. 告别乱码,针对GBK、UTF-8两种编码的智能URL解码器的java实现
  12. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验06 递归程序设计(2021级)
  13. 企业微信-通讯录管理-成员管理以及部门管理
  14. 自定义 View 之圆形、圆角、爱心、动态旗帜等图片效果
  15. 基于PT100铂电阻的高精度测温方法
  16. 新《劳动法》能要来“双薪”?
  17. python类takes no arguments_Python中的学习类出现的object() takes no parameters问题
  18. token 微信access 过期_.Net微信开发之如何解决access_token过期问题
  19. Python常用配置文件ini、json、yaml读写总结
  20. CUDA实例系列一: 矩阵乘法优化

热门文章

  1. 【Knife4j】小试牛刀,基于eureka的集成
  2. 【268期】不小心将测试代码提交到生产环境,教你 6 种方法秒解决!
  3. JdbcTemplate查询与批量更新
  4. 用户产生内容(UGC)和用户创建市场(UGM)
  5. 计算机专业见刊快的普刊,可以快速见刊的普刊有哪些?
  6. Javascript日历
  7. 2021-07-08 斜率
  8. [sdm660 android9.0]摄像头调试
  9. 【专栏推荐】朱赟的技术管理课
  10. 苹果系统Mac能安装office吗