首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将命令存储在shell脚本的变量中?

如何将命令存储在shell脚本的变量中?
EN

Stack Overflow用户
提问于 2011-04-11 08:33:14
回答 7查看 234.5K关注 0票数 160

我希望将一个命令存储在一个变量(不是命令的输出,而是命令本身)中,以便在以后使用。

我有一个简单的脚本,如下所示:

代码语言:javascript
复制
command="ls";
echo "Command: $command"; #Output is: Command: ls

b=`$command`;
echo $b; #Output is: public_html REV test... (command worked successfully)

然而,当我尝试一些更复杂的东西时,它失败了。例如,如果我制作了

代码语言:javascript
复制
command="ls | grep -c '^'";

输出为:

代码语言:javascript
复制
Command: ls | grep -c '^'
ls: cannot access |: No such file or directory
ls: cannot access grep: No such file or directory
ls: cannot access '^': No such file or directory

我如何将这样的命令(带有管道/多个命令)存储在一个变量中,以供以后使用?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-04-11 08:38:22

使用eval:

代码语言:javascript
复制
x="ls | wc"
eval "$x"
y=$(eval "$x")
echo "$y"
票数 195
EN

Stack Overflow用户

发布于 2019-09-19 13:57:54

对于bash,像这样存储您的命令:

代码语言:javascript
复制
command="ls | grep -c '^'"

像这样运行您的命令:

代码语言:javascript
复制
echo $command | bash
票数 3
EN

Stack Overflow用户

发布于 2022-01-10 06:41:21

不知道为什么这么多答案会让问题变得复杂!使用alias命令'string to execute‘示例:

代码语言:javascript
复制
alias dir='ls -l'

./dir
[pretty list of files]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5615717

复制
相关文章

相似问题

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