请教:脚本中使用awk的变量问题

在脚本中调用awk或grep发现不能使用变量,请高手指教
#! /bin/bash
LATEST_FILE="4.test"
FILELIST_LOG=tmp.list
awk '{ while ( getline >0 )  { if ( $1 ~ /$LATEST_FILE/) { exit } else { print $1 }} }' $FILELIST_LOG
原本希望显示4.test前的字符串后退出,执行后不能匹配到4.test
[test@WebServer eriback]$ more tmp.list
(218.200.221.33:test)
bytes)
1.test
2.test
3.test
4.test
[test@WebServer eriback]$ ./testawk
bytes)
1.test
2.test
3.test
4.test
把脚本改成
#! /bin/bash
LATEST_FILE="4.test"
FILELIST_LOG=tmp.list
awk '{ while ( getline >0 )  { if ( $1 ~ /4.test/) { exit } else { print $1 }} }' $FILELIST_LOG
就没有问题
[test@WebServer eriback]$ ./testawk
bytes)
1.test
2.test
3.test

作者: dracula2011   发布时间: 2011-06-04

把awk中的shell变量这样'$LATEST_FILE'或'"$LATEST_FILE"'引起来

作者: shplpy   发布时间: 2011-06-04

感谢楼上,再请教一下ls带变量呢
[test@WebServer ftptestloc]$ more testinteg
#! /bin/bash
for file in `cat /home/test/ftptestloc/tmp.list`
do
echo $file
ls '$file'
done

[test@WebServer ftptestloc]$ ./testinteg
1.test
ls: $file: No such file or directory
2.test
ls: $file: No such file or directory
3.test
ls: $file: No such file or directory
4.test
ls: $file: No such file or directory

试了用‘’ 或“”或不带都是这样

作者: dracula2011   发布时间: 2011-06-04

回复 dracula2011


    双引号

作者: yinyuemi   发布时间: 2011-06-04