首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >bash/ksh/scripting eval subshell引用

bash/ksh/scripting eval subshell引用
EN

Stack Overflow用户
提问于 2010-05-04 03:46:01
回答 2查看 3.3K关注 0票数 1

我正在使用ksh,但遇到了一些问题。为什么这段代码不能运行?

代码语言:javascript
复制
[root]$ CMD="ls -ltr"
[root]$ eval "W=$( $CMD )"
[root]$ ksh: ls -ltr:  not found.
[root]$ echo $W 

但这很好用:

代码语言:javascript
复制
[root]$ CMD="ls -ltr"
[root]$ eval 'W=$('$CMD')'
[root]$ echo $W 
EN

Stack Overflow用户

发布于 2010-05-04 03:52:16

ksh将第一个示例中的$CMD扩展为一个位置参数,其值为"ls -ltr“(注意,其中包含了空格。您希望将其展开为两个参数:"ls“(命令名)和"-ltr”(选项)。后面的示例使用这种扩展,因为扩展在脚本中,然后传递给子shell。

如果您正在编写一个C程序,第一个示例给出了带有argv[0] = "ls -ltr"argc = 1,第二个示例给出了带有argv[0] = "ls"argv[1] = "-ltr"argc = 2。(如果这个例子有用的话。)

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2760744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档