【问题标题】:How can I make a bash string of command with redirect and pipe?如何使用重定向和管道制作 bash 命令字符串?
【发布时间】:2014-01-10 21:06:14
【问题描述】:

我想用重定向和/或管道制作一个bash命令字符串,并用它来显示命令字符串或执行命令字符串。没有重定向或管道的简单命令有效,但带有重定向或管道的命令字符串不起作用。例如,

command="echo 1"
$command
echo "$command"

会显示

1
echo 1

然而,

command="echo 1 | cat"
$command
echo "$command"

会显示

1 | cat
echo 1 | cat

但是,我想要

1
echo 1 | cat

同样适用于重定向,

command="echo 1 | cat > 1.out"
$command
echo "$command"

会显示

1 | cat > 1.out
echo 1 | cat > 1.out

但我想要

echo 1 | cat > 1.out

包含一个名为“1.out”的新文件,其中包含内容 1。

有没有办法实现我想要的?

【问题讨论】:

标签: linux bash shell pipe io-redirection


【解决方案1】:

如果您希望 shell 将字符串评估为命令,请使用 eval 告诉它这样做:

eval "$command"

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多