日期:2014-05-16  浏览次数:20892 次

cat和echo疑问
写了个小脚本如下:

#!/bin/bash

phrase_file=/home/hadoop/phrases.txt

for content in `cat ${phrase_file}`
do
        phrase=`cat ${content}| awk 'BEGIN{FS=";"}{print $1}'`
done

phrases.txt文件格式如下:
A previous rep told me;1280

照理说代码是ok的,但调试结果是这样:
+ for content in '`cat ${phrase_file}`'
++ cat A
++ awk 'BEGIN{FS=";"}{print $2}'

我估计红色粗体地方的问题,我试图用phrase=`echo ${content} | awk 'BEGIN{FS=";"}{print $1}'`来解决,结果不行.phrase=`> ${content} | awk 'BEGIN{FS=";"}{print $1}'`也不行,请问是怎么回事呢?
------解决方案--------------------
哪里有echo的事情
------解决方案--------------------
cat是打印文件,你cat $content是干嘛?

用echo
------解决方案--------------------
引用:
把for content in `cat ${phrase_file}`改为 `cat ${phrase_file}` 
------解决方案--------------------
 while read content就解决了,不过这两者有什么区别呢?

一个是按空格分割,一个是按行分割。