Chinaunix

标题: echo问题 [打印本页]

作者: gonghouyu    时间: 2008-11-26 14:18
标题: echo问题
echo"请输入数值:"
read  data

如果输入数值为200088

有没有办法可以 取到data1=2000
data2=88
也就是分段取到数值?
作者: xmbbx    时间: 2008-11-26 14:23
中间加空格不行吗
作者: ynchnluiti    时间: 2008-11-26 14:26
原帖由 gonghouyu 于 2008-11-26 14:18 发表
echo"请输入数值:"
read  data

如果输入数值为200088

有没有办法可以 取到data1=2000
data2=88
也就是分段取到数值?

read -n4 data1
read -n2 data2
或者
data1=${data:0:4}
作者: ubuntuer    时间: 2008-11-26 14:30
data1=${data:0:4}
data2=${data:4:5}
作者: blackold    时间: 2008-11-26 14:39
标题: 回复 #1 gonghouyu 的帖子
read -a data
2000 88
echo ${data[@]}
作者: shaneqi    时间: 2008-11-26 14:41
取完后再分解。
作者: bigqueues    时间: 2008-11-26 15:22
这个需求很奇怪
作者: gonghouyu    时间: 2008-11-26 16:28
貌似都不行
作者: walkerxk    时间: 2008-11-26 17:47
如果输入数值为200088
还是
比如输入数值为200088?
你的意思就是取前四位和后两位?
作者: ningxinleng    时间: 2008-11-26 19:39
加个空格看看
作者: walkerxk    时间: 2008-11-26 20:32
read -n4 data1
read -n2 data2
这个不行?
read data
data1=${data:0:4}
data2=${data:4:5}
这个也不行?我这都可以啊。
作者: gonghouyu    时间: 2008-11-26 20:53
原帖由 ningxinleng 于 2008-11-26 19:39 发表
加个空格看看

不行
因为比如键入 20080000
我要取一次200800   一次080000
作者: gonghouyu    时间: 2008-11-26 20:54
原帖由 walkerxk 于 2008-11-26 20:32 发表
read -n4 data1
read -n2 data2
这个不行?
read data
data1=${data:0:4}
data2=${data:4:5}
这个也不行?我这都可以啊。

确实不行
作者: gonghouyu    时间: 2008-11-26 20:56
原帖由 walkerxk 于 2008-11-26 17:47 发表
如果输入数值为200088
还是
比如输入数值为200088?
你的意思就是取前四位和后两位?

就是数字会交叉取 不一定是前4位 后4位
作者: walkerxk    时间: 2008-11-26 21:14
那你怎么知道哪部份输入data1哪部份输入data2?
作者: gonghouyu    时间: 2008-11-27 11:51
原帖由 walkerxk 于 2008-11-26 21:14 发表
那你怎么知道哪部份输入data1哪部份输入data2?

比如说一次输入的八位数字
我想取前6位  和 后四位
作者: ynchnluiti    时间: 2008-11-27 11:55
原帖由 gonghouyu 于 2008-11-27 11:51 发表

比如说一次输入的八位数字
我想取前6位  和 后四位

先read -n8,再分
作者: gonghouyu    时间: 2008-11-27 12:58
原帖由 ynchnluiti 于 2008-11-27 11:55 发表

先read -n8,再分

没明白什么意思 愿闻其详 能不能示例一个
作者: ubuntuer    时间: 2008-11-27 14:49
read -n6 data
data1=${data:0:4}
data2=${data:4:2}
你自己也体会下吧,别就丢句不行
大家说的方案都是对的阿
作者: blackold    时间: 2008-11-27 14:54
搞不清楚LZ到底要什么!
作者: yezhulin1982    时间: 2008-11-27 15:14
原帖由 blackold 于 2008-11-27 14:54 发表
搞不清楚LZ到底要什么!


同意!
作者: walkerxk    时间: 2008-11-27 17:29
read data
data1=${data:0:6}
data2=${data:4:7}
自己按照位数改。
去看看http://bbs.chinaunix.net/viewthr ... p;page=7#pid1617953
有时候真想说句RTFTQ(read the fucking thirteen questions)
作者: gonghouyu    时间: 2008-12-03 21:12
谢谢 大家对此贴的关注和热心解答  现在找到了一个比较适合的方法 分享一下
....
read number
date=`echo $number|awk '{print substr($0,5,4)}'`
...
按照需要调($0,5,4)里的取值




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2