免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2121 | 回复: 6
打印 上一主题 下一主题

救命呀: 关于awk 赋值的问题, 哪位高手帮帮忙呀? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-17 15:35 |只看该作者 |倒序浏览
运行环境: tru 64 unix    在hp-UX 下可以运行成功 ,但在tru64 unix下就不行了.
以下是脚本: 红颜色的哪行有问题, 如何解决......急

echo "\n"
echo "please input the date:\c"
read logtime
file="/usr/users/shyang/log/$logtime"     ///取日志的文件名

n=$(awk 'END{print NR}' $file)

echo $n
echo "the date is : $logtime\n"

awk  '{sum3+=$3;sum5+=$5;sum7+=$7;cpu=sum3/'$n';memory=sum5/'$n';disk=sum7/'$n'}END{print cpu"\t\t"memory"\t\t"disk}' $file
echo "\n"

错误提示:
fgms:/usr/users/operator>./percent.sh

please input the date:0116
./percent.sh: syntax error at line 8: `n=$' unexpected
fgms:/usr/users/operator>

论坛徽章:
0
2 [报告]
发表于 2007-01-17 15:40 |只看该作者
n=`wc -l < "$file"`

替换成这个试试~~~

论坛徽章:
0
3 [报告]
发表于 2007-01-17 16:00 |只看该作者
不对呀, 输出结果如下:  直接把' ' 里的内容给输出来了,并没有执行这句代码.
fgms:/usr/users/operator>./percent.sh

please input the date:0116
wc -l"$file"
the date is : 0116

论坛徽章:
0
4 [报告]
发表于 2007-01-17 17:09 |只看该作者
注意是反引号:  ``

论坛徽章:
0
5 [报告]
发表于 2007-01-17 17:13 |只看该作者
原帖由 mengfei888 于 2007-1-17 16:00 发表
不对呀, 输出结果如下:  直接把' ' 里的内容给输出来了,并没有执行这句代码.
fgms:/usr/users/operator>./percent.sh

please input the date:0116
wc -l"$file"
the date is : 0116


如icesummit所述, 另外一定要 < 这样不然输出带着文件名, 不是你想要的结果.

论坛徽章:
0
6 [报告]
发表于 2007-01-17 19:03 |只看该作者
非常感谢两位, 按你们的做法搞定了.谢谢.

不过我还是不明白反引号和单引号有什么区别,  .还有个不明白的地方就是,必须将下边红色部分, 先用双引号 ""  再用 ' ' 单引号括起来,直接用双引号或单引号,都是错误的.   这是为什么.....??????
fgms:/usr/users/operator>more percent.sh
echo "\n"
echo "please input the date:\c"
read logtime
file="/usr/users/shyang/log/$logtime"
n=`wc -l <"$file"`
echo "the date is : $logtime\n"
awk  '{sum3+=$3;sum5+=$5;sum7+=$7;cpu=sum3/'"$n"';memory=sum5/'"$n"';disk=sum7/'"$n"'}END{print cpu"\t\t"memory"\t\t"disk}' $file
echo "\n"
fgms:/usr/users/operator>

论坛徽章:
0
7 [报告]
发表于 2007-01-17 19:18 |只看该作者
原帖由 mengfei888 于 2007-1-17 19:03 发表
非常感谢两位, 按你们的做法搞定了.谢谢.

不过我还是不明白反引号和单引号有什么区别,  .还有个不明白的地方就是,必须将下边红色部分, 先用双引号 ""  再用 ' ' 单引号括起来,直接用双引号或单引号, ...



网中人的十三问.
${}是bash的扩展, 可以嵌套, 看起来也清楚, 但是可能会不可移植. ``这个是sh的标准语法, 可移植性好一些.
单引号中不能进行变量代换. 双引号可以...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP