2015-01-15 106 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]" 

它將作爲參數傳遞任何命令行和打印輸出不變。