为什么执行awk命令在终端能打印出字符,语句放到脚本中就不能打印字符只打印出一个空格了?

脚本如下:#!/bin/bashfps=(40.4741.0740.839.825.2625.11)count=0for((i==0;i<${#fps[@]};i++))... 脚本如下:
#!/bin/bash
fps=(40.47 41.07 40.83 9.82 5.26 25.11)
count=0
for((i==0;i<${#fps[@]};i++))
do
echo ${fps[i]}
echo $fps |awk "BEGIN{a=${fps[i]};print a<"24" ? "lost":"get";}"
# echo $fps|awk "BEGIN{${fps[i]}>= 24"?"OK":"error";}"
# let count=count+1
done
执行结果:
[root@node72 home]# ./111.sh
40.47

41.07

40.83

9.82

5.26

25.11
展开
 我来答
百度网友5311d79
2014-01-14 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3146万
展开全部

将shell变量传进awk推荐用-v选项:

echo | awk -v a=${fps[i]} '{print a<24?"lost":"get"}'

awk作用域建议还是用单引号,不要用双引号将awk内部环境开放给shell。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式