回复星号到文件

时间:2011-10-13 18:58:23

标签: linux bash echo

我有一个奇怪的问题。我正在尝试将文件的响应回显到另一个文件中。例如,我喜欢使用:

# run_location=`find -name 'program.exe'`
# echo $run_location>storagefile.txt

所以我可以保存我的程序所在的位置以供日后使用。但是现在我有一个问题,我想抓住程序的输出并存储它。唯一的问题是输出包含很多星号(*),当我回显*时,它回应我目录中的所有文件名,产生一个混乱的文件。

文件的输出是:

# ./device -FD
*******************************
* Firmware         : 1.0034   *
* Date             : 011209   *
*******************************

我想保存文件详细,有什么方法吗?可能还有其他方法可以将输出保存到文件中?我知道用星号输出并不是最好的想法,但我无法控制如何获得这些数据。

谢谢!

1 个答案:

答案 0 :(得分:5)

shell脚本编写的重要规则:在您应用引号时要自由。所以对你的例子来说:

run_location="`find -name 'program.exe'`"
echo "$run_location" >storagefile.txt

如果没有这些引号,这些将被解释为命令行令牌......它将根据空格的存在而被切断,并且将评估像*这样的模式。如果它来自用户,文件或程序的输出,请引用它。