- 浏览: 40128 次
- 性别:
- 来自: 广州
文章分类
最新评论
eval
eval arg1 [arg2] ... [argN]
将表达式中的参数,或者表达式列表,组合起来,并且评估它们.包含在表达式中的任何变量
都将被扩展.结果将会被转化到命令中.这对于从命令行或者脚本中产生代码是很有用的.
写了个脚本测试
#!/bin/bash
y=`eval ls -l`
echo "$y"
echo "--------------------------------------"
for i in ls df
do
value=eval $i
echo $value
done
exit 0
输出
[root@nms probe_test]# ./eval.sh
总计 24
-rwxr-xr-x 1 oracle oinstall 157 04-14 09:29 29.5.sh
-rwxr-xr-x 1 oracle oinstall 108 04-14 12:12 29.6.sh
-rwxr-xr-x 1 oracle oinstall 93 04-14 12:47 33.sh
-rwxr-xr-x 1 oracle oinstall 139 04-14 14:19 eval.sh
-rwxr-xr-x 1 oracle oinstall 34 04-14 08:40 restart.sh
-rwxr-xr-x 1 oracle oinstall 44 04-14 09:06 test.sh
--------------------------------------
29.5.sh 29.6.sh 33.sh eval.sh restart.sh test.sh
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
23297916 8251172 13844160 38% /
/dev/hda1 101086 10784 85083 12% /boot
tmpfs 257800 0 257800 0% /dev/shm
/dev/hdb1 1031800 17692 961696 2% /mnt/ultrapower
这里可以看出使用了eval后,eval将会评估"df"和"ls",他们被解释成命令,而不是字符串本身
如果去掉eval又有啥不同呢?
看输出
[root@nms probe_test]# ./eval.sh
总计 24
-rwxr-xr-x 1 oracle oinstall 157 04-14 09:29 29.5.sh
-rwxr-xr-x 1 oracle oinstall 108 04-14 12:12 29.6.sh
-rwxr-xr-x 1 oracle oinstall 93 04-14 12:47 33.sh
-rwxr-xr-x 1 oracle oinstall 134 04-14 14:21 eval.sh
-rwxr-xr-x 1 oracle oinstall 34 04-14 08:40 restart.sh
-rwxr-xr-x 1 oracle oinstall 44 04-14 09:06 test.sh
--------------------------------------
ls
df
第一个去掉eval并无什么不一样,因为使用了``,第二个eval去掉了,就把df和ls当初字符串来解释了。
有一个例子
运行脚本的 shell 一般都是非交互的shell. 但脚本仍然可以存取它拥有的终端. 脚本里甚至可
以仿效成可交互的 shell
这个例子不知道在实际写脚本的时候会有什么用,先记录下
#!/bin/bash
my_prompt='$'
while :
do
echo -n "$my_prompt"
read line
eval "$line"
done
exit 0
输出
[root@nms probe_test]# ./33.sh
$ls
29.5.sh 29.6.sh 33.sh eval.sh restart.sh test.sh
$ll
./33.sh: line 7: ll: command not found
会把读入的line当做命令来执行
发表评论
-
转义符
2014-03-27 22:20 577转义是一种引用单个字符的方法,一个具有特色含义的的字符前 ... -
没事干,写了个核查数据的脚本
2012-08-05 17:14 1239根据此业务数据核查的一些共性,写了个脚本,安排组员使用这个脚本 ... -
find命令中的mtime参数
2012-08-05 12:59 1170要写一个定时删除log的日志,需要用到这个命令,记录下。 f ... -
传送文件到多个远程机器的脚本
2012-05-01 23:48 664写一个传送文件到远程机器的脚本 因为在进行升级操作的时候,一 ... -
一些命令汇总
2012-04-19 21:35 0jobs 在后台列出所有正在运行的作业,给出作业号 fg, ... -
break和continue在循环中的使用
2012-04-29 16:41 1068打印出1至9,但是不打印其中的4和6 这样写: # ... -
嵌套循环
2012-04-19 21:01 833模仿一个嵌套循环,看下输出,就知道嵌套循环的规律,一般程序中的 ... -
内部命令
2012-04-16 20:52 0先看一个脚本 #!/bin/bash ... -
操作字符串命令(提取,消除,替换)
2012-04-16 20:05 9501.expr提取 格式: expr match &qu ... -
参数替换
2012-04-15 11:42 667第一种参数替换 如脚本 #!/bin/bash you_ ... -
特殊字符梳理
2012-04-15 11:18 711双引号"" 在一 ... -
远程登录机器重启某个应用
2012-04-14 21:24 1137最近准备写一 ... -
trap的用法
2012-04-14 15:15 0trap用在当收到一个信号时指定一个处理动作 格式为trap ... -
关于远程登录机器重启某个应用
2012-04-12 23:17 0最近准备写一个脚本重启远程某个机器上的应用, ... -
shift的使用
2012-04-08 10:49 542使用shift来穿过所以的位置参数 #!/bin/bash ... -
bash变量的类型
2012-04-08 10:32 783不像其他程序语言一样,Bash 并不对变量区分"类型 ... -
变量赋值和替换
2012-04-08 02:14 777#!/bin/bash a=28 hello= ... -
位置参数的使用
2012-04-07 20:29 696$0, $1, $2,等等... 位置参数,从命令行传递给脚本 ... -
for循环
2012-04-07 13:44 602以一道练习题为例子 1.编写一个if命令的语句: 判断某个用户 ... -
case的用法
2012-03-31 20:41 716这几天都在忙验收的事情,验收终于完了,也有时间写写博客。 今天 ...
相关推荐
Linux eval命令 Linux eval命令用于重新运算求出参数的内容。 eval可读取一连串的参数,然后再依参数本身的特性来执行。 语法eval [参数] 参数说明:参数不限数目,彼此之间用分号分开。 实例 连接多个命令 # eval ...
idea 重置试用期脚本 ide-eval-resetter 1. 下载下来,解压 2. idea 点击试用并随便创建一个项目 3. 将ide-eval-resetter.zip压缩包直接拖进idea编辑器中
使用方法: 1.首先将文件拷贝到任意的linux系统中 2.执行命令 sh ide-eval-resetter.sh 即可导出文件
借助Faster R-CNN中voc_eval.py文件,测试YOLO测试数据集mAP等结果,博客见
使用方式: 1、给下载的ide-eval-resetter.sh放在任何带有linux环境中 2、使用命令sh ide-eval-resetter.sh 3、给解压的压缩包拖进idea
本文运用实例介绍了shell中的eval与crontab命令,文章介绍的很详细,有需要的可以参考借鉴。
函数实现将字符串转换为等价的可执行命令,执行一个字符串表达式,并返回表达式的值。 语法 eval(expression[,globals[,locals]]) expression–表达式 globals–变量作用域,全局命名空间 locals–变量作用...
打开文件并应用,edit、text,button,axes以及eval命令的使用(文件为Engine_Trq_fileopen) GUI调用GUI(文件为GUI_open_GUI) 一个用纯粹的matlab语言编写的GUI(文件为Practice_matGUI) 图线上的右键菜单...
执行此命令后,您可以使用附件提供的新ice-mods。 怎么运行的 缓慢的初始化命令的输出将重定向到plugin / snippets目录中的文件,并在加载时提供。 下次加载插件/代码片段时,将跳过此源代码,而无需运行初始化命令...
目录 [redis 调用Lua脚本](#redis 调用Lua脚本...redis调用Lua脚本需要使用EVAL命令。 redis EVAL命令格式: redis 127.0.0.1:6379> EVAL script numkeys key [key …] arg [arg …] 最简单的例子: 127.0.0.1:6379
当内存中的内置模块含有os的话,eval同样可以做到命令执行: In [3]: import os In [4]: eval(os.system('whoami')) hy-201707271917\administrator Out[4]: 0 当然,eval只能执行Python的表达式类型的...
在服务器端可以通过db.eval函数来执行javascript脚本,也可以把javascript脚本保存在数据库中,然后在别的数据库命令中调用. 一、db.eval 执行服务器端脚本 利用db.eval函数可以在MongoDB服务器端执行javascript脚本....
为什么LLDB有一个非常强大的内置表达式评估器(可通过expr命令使用)。 它可以处理几乎所有有效的C ++并执行函数调用。 但是这种功能的缺点是性能不佳,尤其是对于具有大量调试信息的大型程序而言。 对于交互使用而...
3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup...
eval是Python用于执行python表达式的一个内置函数,使用eval,可以很方便的将字符串动态执行。比如下列代码: >>> eval("1+2") >>> eval("[x for x in range(10)]") [0, 1, 2, 3, 4, 5, 6, 7, 8, 9...
国际象棋引擎评估调试器版本v.0.3运行本地服务器server_python2.py 或者server_python3.py 开启网页 或者防垃圾引擎设置一个或多个引擎设置eval命令,例如河豚8使用eval ,狡猾的使用得分选择协议(uci或xboard) 将...
Eval GetLocale GetObject GetRef InputBox IsEmpty IsNull IsNumeric IsObject LoadPicture MsgBox RGB Round ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion ...