2015-01-15 108 views
1

我试图打印输出显示从传递到bash脚本命令。我试图解决的问题是如何让输出看起来完全像从shell运行命令一样。例如,当我运行ls时,我看到目录与文件的颜色不同。从Bash脚本显示Unix命令的精确输出

这里是我到目前为止一些示例代码:

#!/bin/bash 

command="[email protected]" 
output=`$command` 
echo "$output" 

所以我的shell脚本接受一个命令,运行命令,然后打印输出。我知道我可以使用颜色代码和echo -e自定义输出的颜色,但是我希望输出看起来与我从shell运行命令时的效果一样。任何想法我怎么能做到这一点?

回答

1

如果您只需要显示输出,就可以在脚本中内联运行该命令(只需让它直接写入stdout,而不将其输出存储在某个变量中)。

也就是说,可以更换:

output=`$command` 
echo $output 

有:

$command 

eval $command 

如果您还需要对某些种类的处理输出,这将是有点棘手。您可以(例如)使用| tee /var/tmp/some-temp-file.$$,然后从临时文件中读取输出。

0

为什么不只是有你的脚本:

#!/bin/bash 
"[email protected]" 

它将作为参数传递任何命令行和打印输出不变。