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

eval builtin command

作者头像
恋喵大鲤鱼
发布2023-10-12 15:23:37
2110
发布2023-10-12 15:23:37
举报
文章被收录于专栏:C/C++基础C/C++基础

1.命令简介

eval(evaluate)连接参数构造命令并执行,为内建命令。

使用空格分隔每个参数,如果参数中含有变量,则替换为变量值,然后再将构造的命令交由 Shell 解释执行。它通常用于动态生成和执行命令,或者将字符串解释为可执行的 Shell 代码。

2.命令格式

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

eval 的返回值是其后面命令的退出状态。如果没有参数或只有空参数,eval 返回 0。

3.选项说明

None。

4.常用示例

(1)打印变量。

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

# echo 前添加 eval 也可以
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

参考文献

bash(1) - Linux manual page - man7.org ``和$()的区别及eval详解 - CSDN

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

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

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

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

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