免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chilewh
打印 上一主题 下一主题

怎样将字符串变成数值(已解决) [复制链接]

论坛徽章:
0
21 [报告]
发表于 2009-03-03 17:00 |只看该作者
呵呵,是么 test="600" 会出错?
那再试试吧:  declare -i v_bw=$(sed ....)

论坛徽章:
0
22 [报告]
发表于 2009-03-03 17:05 |只看该作者

回复 #19 我是DBA 的帖子

如果v_bw取出的是数值的话
(( v_bw=$ v_bw+ 1 ))
结果不是应该增加1吗?
变为601

论坛徽章:
0
23 [报告]
发表于 2009-03-03 17:07 |只看该作者

回复 #22 chilewh 的帖子

(( v_bw=$v_bw+ 1 ))

你的$与v_bw多了空格

论坛徽章:
0
24 [报告]
发表于 2009-03-03 17:10 |只看该作者

回复 #21 seeLnd 的帖子

[root@localhost ~]# declare -i v_bw=$(sed -n '/^bandwidth/s/bandwidth //p' /root/test/s.conf)
提示:
")syntax error: operand expected (error token is "

请问这个declare -i v_bw=$(sed ....)是什么意思呀?

论坛徽章:
0
25 [报告]
发表于 2009-03-03 17:24 |只看该作者
声明 变量为 integer,  你的shell是bash吗,如果是,版本是多少

论坛徽章:
0
26 [报告]
发表于 2009-03-03 17:37 |只看该作者

回复 #25 seeLnd 的帖子

GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.

非常遗憾,我的还是600
v_b=$(sed -n '/^bandwidth/s/bandwidth //p' /root/test/s.conf|tr -d " ")
[root@localhost ~]# (( v_b=$v_b+ 1 ))
[root@localhost ~]# echo $v_b
600

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
27 [报告]
发表于 2009-03-03 17:44 |只看该作者
file root/test/s.conf
cat -A root/test/s.conf
dos2unix root/test/s.conf

论坛徽章:
0
28 [报告]
发表于 2009-03-03 17:46 |只看该作者
用let试试呢?

let v_b=v_b+1

我这里都没问题。


  1. [root@bj_manager test]# v_bw=$(sed -n '/^bandwidth/s/bandwidth //p' /home/gh/test/s.conf)
  2. [root@bj_manager test]# echo $v_bw
  3. 600
  4. [root@bj_manager test]# let v_bw=v_bw+1
  5. [root@bj_manager test]# echo $v_bw     
  6. 601
  7. [root@bj_manager test]# v_bw=$(sed -n '/^bandwidth/s/bandwidth //p' /home/gh/test/s.conf)
  8. [root@bj_manager test]# echo $v_bw
  9. 600
  10. [root@bj_manager test]# (( v_bw=v_bw+1 ))
  11. [root@bj_manager test]# echo $v_bw
  12. 601
  13. [root@bj_manager test]#
复制代码

[ 本帖最后由 kwokcn 于 2009-3-3 17:50 编辑 ]

论坛徽章:
0
29 [报告]
发表于 2009-03-03 17:49 |只看该作者
我还是觉得你的 v_bw 中有特殊的东西,你确信试过了吗:

echo -n "$v_bw"  | cat -A  ,看看有何东西在里面

论坛徽章:
0
30 [报告]
发表于 2009-03-03 17:55 |只看该作者
原帖由 chilewh 于 2009-3-3 17:10 发表
[root@localhost ~]# declare -i v_bw=$(sed -n '/^bandwidth/s/bandwidth //p' /root/test/s.conf)
提示:
")syntax error: operand expected (error token is "

请问这个declare -i v_bw=$(sed ....)是什 ...

waker的答复应该是正确的。
应该是后面多了^M。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP