- 论坛徽章:
- 0
|
环境:
[root@localhost scripts]# uname -a
Linux localhost.localdomain 2.6.27.5-117.fc10.i686 #1 SMP Tue Nov 18 12:19:59 EST 2008 i686 i686 i386 GNU/Linux
awk --version
GNU Awk 3.1.1
Copyright (C) 1989, 1991-2002 Free Software Foundation.
代码:
[root@localhost home]# cat test.sh
#!/bin/sh
ret=$(echo "+" | awk -F';' '
BEGIN{
print"-"
}
{print "-"}
END{
printf("aa=%s,bb=%s\n",aa,bb)
}
'aa="3.2.3" bb="3.2.2")
echo $ret
执行结果:
[root@localhost home]# ./test.sh
- - + aa=3.20.3,bb=3.2.2
结果应该是下面的才对:
- - + aa=3.2.3,bb=3.2.2
如果将代码修改如下:
[root@localhost home]# cat test.sh
#!/bin/sh
ret=$(echo "+" | awk -F';' '
BEGIN{
print"-"
}
{print "-"}
END{
printf("aa=%s,bb=%s\n",aa,bb)
}
'x=1 aa="3.2.3" bb="3.2.2")
echo $ret
结果就对了:
[root@localhost home]# ./test.sh
- - + aa=3.2.3,bb=3.2.2
怀疑是awk解释第一个参数赋值的时候有问题,如果第一个参数是两位以下就没问题,两位以上就有问题,awk最新版本3.1.8也有这样的问题 |
|