linux命令eval的用法
发布日期:2021-06-30 16:15:02
浏览次数:2
分类:技术文章
本文共 566 字,大约阅读时间需要 1 分钟。
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://kerry.blog.csdn.net/article/details/42361739 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月29日 03时10分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Err:11 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64 Packages 404 No
2019-05-01
2021-05-14 技术记录
2019-05-01
ubuntu opencv-python 安装很慢问题
2019-05-01
ubuntu 升级cmake 版本
2019-05-01
docker ubuntu 下 配置 opencv caffe 记录
2019-05-01
cudnn cuda-11.0
2019-05-01
2021-05-15 apt update 更新问题
2019-05-01
ubuntu 编译 cmake
2019-05-01
ubuntu安装caffe整个流程
2019-05-01
ubuntu 更改 gcc g++ 版本
2019-05-01
38. 外观数列
2019-05-01
Java开发对泛型的认识和理解
2019-05-01
Android开发之Context认识和运用
2019-05-01
Android数据库GreenDao的使用完全解析
2019-05-01
简单选择排序
2019-05-01
冒泡排序
2019-05-01
快速排序
2019-05-01
【Java习题】 -- 设计⼀个⽅法,将⼀个字符串中的⼤⼩写字⺟翻转
2019-05-01