前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 命令(144)—— eval 命令(builtin)

Linux 命令(144)—— eval 命令(builtin)

作者头像
恋喵大鲤鱼
发布2022-10-07 08:13:21
1.5K0
发布2022-10-07 08:13:21
举报
文章被收录于专栏:C/C++基础

文章目录

1.命令简介

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

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

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

2.命令格式

代码语言:javascript
复制
eval [argument...]

如果没有 argument 则

3.选项说明

None。

4.常用示例

(1)回显简单变量。

代码语言:javascript
复制
$ NAME=foo
$ echo $NAME
foo
$ eval echo $NAME
foo

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

代码语言:javascript
复制
$ cat test.txt
Hello World!
$ command="cat test.txt"; echo $command
cat test.txt
$ eval $command
Hello World!

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

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

代码语言:javascript
复制
$ cat test.sh
#!/usr/bin/bash
echo \$$#
eval echo \$$#
$ ./test.sh firstarg lastarg
$2
lastarg

参考文献

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1.命令简介
  • 2.命令格式
  • 3.选项说明
  • 4.常用示例
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档