我写一个分析日志文件的shell脚本。最重要的部分是这样的:shell脚本双引号
rx=$(echo "$logfile" | grep -o "rx_value.*" | grep -o "[0-9]\{1,10\}")
echo rx=$rx
被打印到STDOUT(WRONG)以下:
rx=
如果删除从$日志文件双qoutes这样的:
rx=$(echo $logfile | grep -o "rx_value.*" | grep -o "[0-9]\{1,10\}")
echo rx=$rx
的以下是打印到STDOUT(正确):
rx=0
我很确定围绕变量使用双引号是一件好事,所以我在脚本中的所有变量上都使用了它们。到目前为止,我已经找到了信息,说如果一个不把周围变量的双引号,结果可能因为分词的错误成了,通配符等
谁能解释这里发生了什么?
编辑:
$日志文件中包含的wget下载日志文件:
$logfile=(wget -q -O -"http://www.example.com")
是什么'$ logfile'包含哪些内容? – 2010-11-11 21:12:47
这仍然不能回答Ignacio的问题。什么是'$ logfile'内容的例子,而不是“它从哪里来”? – 2010-11-11 21:43:15