zoukankan      html  css  js  c++  java
  • Shell中eval的用法示例

    功能说明:告知shell取出eval的参数,重新运算求出参数的内容。
    语  法:eval [参数]
    补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。
    参  数:参数不限数目,彼此之间用分号分开。
    1.执行命令行之前扫描它两次,再次运算求出参数的内容。

    复制代码 代码如下:

    [root@localhost blue]# a="ls |more"
    [root@localhost blue]# $a                                           #ls


    将 | 和 more 看成了参数,而不是将文件按页显示

    复制代码 代码如下:

    ls: cannot access |more: No such file or directory
    [root@localhost blue]# eval $a                                    #取出


    其参数并再次执行它们

    复制代码 代码如下:

    1
    1.cpp
    2
    2.cpp
    3
    3.cpp
    [root@localhost test]# a="123"
    [root@localhost test]# echo '${'"a"'}'                        
    ${a}
    [root@localhost test]# eval echo '${'"a"'}'                #再次执行${a}命令
    123 


    2.eval取得最后一个参数

    复制代码 代码如下:

    [root@localhost blue]# echo 'eval echo $$#' > last
    [root@localhost blue]# cat last
    eval echo $$#
    [root@localhost blue]# ./last 1 2 3 4
    4


    另外其他高级用法后作补充!
    eval是对Bash Shell命令行处理规则的灵活应用,进而构造"智能"命令实现复杂的功能。
    上面提及的命令是eval其中一个很普通的应用,它重复了1次命令行参数传递过程,纯粹地执行命令的命令。
    其实它是bash的难点,是高级bash程序员的必修之技。

  • 相关阅读:
    uinty实现玩家尾随鼠标位置平滑旋转角度
    matlab hornerDemo
    【App 开发框架
    mobiscroll手机端插件 好用(时间、日历、颜色)
    朴素的UNIX之-调度器细节
    String与StringBuffer的差别
    用jquery ajax做的select菜单,选中的效果
    Codeforces Round #253 (Div. 2)A. Anton and Letters
    unix环境高级编程——文件i/o
    CSDN的技术问题
  • 原文地址:https://www.cnblogs.com/mark-zhou/p/6049648.html
Copyright © 2011-2022 走看看