- 论坛徽章:
- 0
|
[Code]
SOURCEDIR=/home/report/qnh/dfgz/data
TMPDIR=/home/report/qnh/dfgz/tmp
IFS=" "
while read CrpCod CrpNam TxnDat SMR DelCnt CAgtNo
do
aaa="'$CrpCod\t$CAgtNo'"
echo "grep "$aaa" "$SOURCEDIR"/sign.txt" >> $TMPDIR/t1.txt
grep ${aaa} $SOURCEDIR/sign.txt >>$TMPDIR/t2.txt
if [ $? -eq 1 ]
then
echo ${aaa}
exit
fi
done < $SOURCEDIR/gztj1.txt
[/Code]
问题说明:
1、gztj1.txt 是一个操作文件,分隔符是tab
2、aaa="'$CrpCod\t$CAgtNo'" 是grep需要使用的变量,内容是 '34234324/TAB45343',中间表示tab,且行首和行末都有单引号
3、echo "grep "$aaa" "$SOURCEDIR"/sign.txt" >> $TMPDIR/t1.txt,t1.txt 是产生的grep 命令,单独可以执行
4、grep ${aaa} $SOURCEDIR/sign.txt >>$TMPDIR/t2.txt 表示根据变量内容grep操作文件sign.txt 中的匹配的内容
5、1-3 都正常,但是4执行的结果就是为空,而且加上调试判断也是为空的。
实际在操作中,我单独输出命令行到t1.txt,里面的每个命令都可以执行,为何在shell中执行grep ${aaa} $SOURCEDIR/sign.txt >>$TMPDIR/t2.txt 是失败的,t2.txt中内容为空
跪求答案
[ 本帖最后由 qiannh888 于 2008-9-16 18:26 编辑 ] |
|