1. eval command-line

其中command-line是在终端上键入的一条普通命令行。然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它两次。如:

pipe="|"

eval ls $pipe wc -l

shell第1次扫描命令行时,它替换出pipe的值|,接着eval使它再次扫描命令行,这时shell把|作为管道符号了。

如果变量中包含任何需要shell直接在命令行中看到的字符(不是替换的结果),就可以使用eval。命令行结束符(; | &),I/o重定向符(< >)和引号就属于对shell具有特殊意义的符号,必须直接出现在命令行中。

2. eval echo \$$# 取得最后一个参数

如:cat last

eval echo \$$#

./last one two three four

four

第一遍扫描后,shell把反斜杠去掉了。当shell再次扫描该行时,它替换了$4的值,并执行echo命令

3.以下示意如何用eval命令创建指向变量的“指针”:

x=100

ptrx=x

eval echo \$$ptrx 指向ptrx,用这里的方法可以理解b中的例子

100 打印100

eval $ptrx=50 将50存到ptrx指向的变量中。

echo $x

50 打印50

转载于:https://www.cnblogs.com/jianzhaojing/p/11451792.html

shell eval命令相关推荐

  1. linux shell eval 命令 字符串作为命令执行

    eval会对后面的cmdLine进行两遍扫描,如果第一遍扫描后,cmdLine是个普通命令,则执行此命令:如果cmdLine中含有变量的间接引用,则保证间接引用的语义. 举例如下: set 11 22 ...

  2. 【Linux入门到精通系列讲解】shell中的eval命令

    eval命令用法: 当我们在命令行前加上eval时,shell就会在执行命令之前扫描它两次.eval命令将首先会先扫描命令行进行所有的置换,然后再执行该命令.该命令适用于那些一次扫描无法实现其功能的变 ...

  3. linux shell中的eval命令

    语法:eval cmdLine eval会对后面的cmdLine进行两遍扫描,如果第一遍扫描后,cmdLine是个普通命令,则执行此命令:如果cmdLine中含有变量的间接引用,则保证间接引用的语义. ...

  4. 【Linux】1.shell各个命令

    shell各个命令 1.符号参数 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数.如"$*"用「"」括起来的情况.以"$1 $2 - ...

  5. Linux之eval命令使用

    1.eval命令将会首先扫描命令行进行所有的替换,类似于C语言中的宏替换,然后再执行命令.该命令使用于那些一次扫描无法实现其功能的变量.该命令对变量进行两次扫描.这些需要进行两次扫描的变量有时候被称为 ...

  6. bash/shell 解析命令行参数工具:getopts/getopt

    转载自:https://my.oschina.net/leejun2005/blog/202376 bash 脚本中,简单点的参数选项,我们可以直接用位置参数 $1 $2 这样来获取处理了,例如下面这 ...

  7. shell eval

    1. eval command-line 其中command-line是在终端上键入的一条普通命令行.然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它两次.如: pipe=&qu ...

  8. linux eval命令详解,linux命令详解——eval

    shell中的eval 功能说明:从新运算求出参数的内容. 语 法:eval [参数] 补充说明:eval可读取一连串的参数,而后再依参数自己的特性来执行. 参 数:参数不限数目,彼此之间用分号分开. ...

  9. 【系统性学习】Linux Shell常用命令

    本文重点是脚本开发时会常用的命令和一些提高效率的高频系统操作命令,其他命令(主要是运维方面的,如网络操作.硬件操作.文件打包等)后续补充. 该文配合[系统性学习]Linux Shell易忘重点整理(会 ...

最新文章

  1. 【网络】通讯名词解释:带宽、速率、波特率、奈奎斯特定律、香农定理
  2. 【建模必备】遗传算法的基本原理与步骤(选择)
  3. 多线程基础(五)NSThread线程通信
  4. 频繁弹出“受到网络攻击”的消息怎么办,五分钟看懂“僵尸网络”攻击
  5. 用jsp_servlet实现在mysql中存储图片_从数据库中读取并生成图片的Servlet
  6. stmmac描述符的结构和初始化
  7. 离线使用iPhone SDK文档的方法
  8. windows ios android的架构_什么便签备忘录软件横跨Windows、iOS和Android - 学显
  9. 裴礼文数学分析中的典型问题与方法第5章级数练习
  10. 汉语转拼音和五笔简码
  11. 可以测试英语发音的软件,检测英语发音的软件
  12. 实战攻防比赛中作为防守方需要做哪些工作
  13. 电子知识|电源管理芯片
  14. linux igb网卡,网卡驱动程序igb ixgbe
  15. 基于Stm32f103硬件iic驱动LM75A温度传感器
  16. Centos系统修改为静态ip
  17. Anaconda jupyter 错误修复
  18. 【Java】有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
  19. win10远程计算机连接打印机共享打印机,win10共享打印机设置连接方法(1分钟学会!)...
  20. 跟我一起玩Win32开发(2):完整的开发流程

热门文章

  1. 在js中使用HashMap数据结构,在js中使用K,V数据结构
  2. 2022-2028年中国未硫化橡胶制品行业市场运行格局及未来前景展望报告
  3. http传输json文件_python
  4. 安装win下的Anaconda ----针对python3.6.4版本
  5. Python分析离散心率信号(下)
  6. 与现代传感器的接口:轮询ADC驱动程序
  7. 全卷积目标检测:FCOS
  8. Thrift协议与传输选择
  9. Django 模板继承4.2
  10. css块级元素与行级元素