我有一个奇怪的问题。我正在尝试将文件的响应回显到另一个文件中。例如,我喜欢使用:
# run_location=`find -name 'program.exe'`
# echo $run_location>storagefile.txt
所以我可以保存我的程序所在的位置以供日后使用。但是现在我有一个问题,我想抓住程序的输出并存储它。唯一的问题是输出包含很多星号(*),当我回显*时,它回应我目录中的所有文件名,产生一个混乱的文件。
文件的输出是:
# ./device -FD
*******************************
* Firmware : 1.0034 *
* Date : 011209 *
*******************************
我想保存文件详细,有什么方法吗?可能还有其他方法可以将输出保存到文件中?我知道用星号输出并不是最好的想法,但我无法控制如何获得这些数据。
谢谢!
答案 0 :(得分:5)
shell脚本编写的重要规则:在您应用引号时要自由。所以对你的例子来说:
run_location="`find -name 'program.exe'`"
echo "$run_location" >storagefile.txt
如果没有这些引号,这些将被解释为命令行令牌......它将根据空格的存在而被切断,并且将评估像*
这样的模式。如果它来自用户,文件或程序的输出,请引用它。