分页: 1 / 1

请教一个关于冒号的问题

发表于 : 2010-08-07 1:40
fengjie

代码: 全选

#!/bin/bash
Total=012345678901234567890123456789
echo ${Total:17}
小弟刚看别人的程序,里面有类似上面的一段代码,百思不得其解,
请问上面Total与17之间的冒号有什么作用?17又是什么意思呢?

Re: 请教一个关于冒号的问题

发表于 : 2010-08-07 8:45
trigger
运行一下,数数

Re: 请教一个关于冒号的问题

发表于 : 2010-08-07 12:30
fengjie
多谢楼上,终于明白什么意思了,但是不知道还有没有其它的用法

Re: 请教一个关于冒号的问题

发表于 : 2010-08-07 12:39
trigger
fengjie 写了:多谢楼上,终于明白什么意思了,但是不知道还有没有其它的用法
$ echo "012345678901234567890123456789" | cut -c 18-

Re: 请教一个关于冒号的问题

发表于 : 2010-08-07 12:46
fengjie
trigger 写了:
fengjie 写了:多谢楼上,终于明白什么意思了,但是不知道还有没有其它的用法
$ echo "012345678901234567890123456789" | cut -c 18-
手机上的系统,cut被精简掉了……

Re: 请教一个关于冒号的问题

发表于 : 2010-08-07 12:56
trigger
晕,cut都没有,估计好多都没有
$ expr substr 012345678901234567890123456789 18 13
:em20

Re: 请教一个关于冒号的问题

发表于 : 2010-08-07 13:22
fengjie
trigger 写了:晕,cut都没有,估计好多都没有
$ expr substr 012345678901234567890123456789 18 13
:em20
这个有,嘿嘿

代码: 全选

$ Total="123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
$ expr substr $Total 15 5
$ expr: syntax error
中间有空格就不行了?

Re: 请教一个关于冒号的问题

发表于 : 2010-08-07 13:53
trigger

代码: 全选

$ Total="123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ"
$ expr substr $Total 15 5
expr: 语法错误
$ expr substr "$Total" 15 5
EFGHI
因为Total事实上的值没有“”,所以变量传递之后你的命令变为

代码: 全选

expr substr 123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ 15 5
把‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’当成参数了,所以语法错误

Re: 请教一个关于冒号的问题

发表于 : 2010-08-07 18:20
aerofox

代码: 全选

#!/bin/bash
Total=012345678901234567890123456789
echo ${Total:17}          #结果:7890123456789
echo ${Total:17:2}        #结果:78
echo ${Total:0-4}         #结果:6789
echo ${Total:0-4:2}       #结果:67

Re: 请教一个关于冒号的问题

发表于 : 2010-08-07 22:21
eexpress
man bash吧。
这讨论啥。

Re: 请教一个关于冒号的问题

发表于 : 2010-08-13 0:35
tusooa

代码: 全选

tlcr: 0 庚寅年七月初四日 00:30:42 ~
>> echo ${foo:5}
6789
tlcr: 0 庚寅年七月初四日 00:30:44 ~
>> echo ${foo:5:${#foo}}
6789
就是截取字串阿。