发现for和while一个细节上的区别,写出来备忘。
脚本:
很自然的以为echo $phrase的值是"Hello previous rep",不过出乎意料,结果是"Hello"。怎样才能打印出整行"Hello previous rep"呢?用while。
脚本:
file=/home/hadoop/phrases.txt
for content in `cat ${file}`
do
phrase=`echo ${content}`
echo $phrase
done
phrases.txt文件内容是:
Hello previous rep很自然的以为echo $phrase的值是"Hello previous rep",不过出乎意料,结果是"Hello"。怎样才能打印出整行"Hello previous rep"呢?用while。
file=/home/hadoop/phrases.txt
cat ${file} | while read content
do
phrase=`echo ${content}`
echo $phrase
done
打印结果:"Hello previous rep。
原因:for循环式以空格为分隔符,而while是以一行为分隔符。所以如果一行文本中有空格,要遍历多行文本,最好采用while。
如若转载,请说明出处! http://blog.csdn.net/xukunddp