![bash 变量扩展中的“:”(冒号)运算符是什么意思:VAR=${TEMP:3}?](https://linux22.com/image/876490/bash%20%E5%8F%98%E9%87%8F%E6%89%A9%E5%B1%95%E4%B8%AD%E7%9A%84%E2%80%9C%3A%E2%80%9D%EF%BC%88%E5%86%92%E5%8F%B7%EF%BC%89%E8%BF%90%E7%AE%97%E7%AC%A6%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9AVAR%3D%24%7BTEMP%3A3%7D%EF%BC%9F.png)
变量中下面这一行是什么意思bash
?
VAR=${TEMP:3}
答案1
这是变量扩展并且像这样工作(注意这只是bash
特定ksh
的并且不会在 POSIX shell 中工作):
$ x=1234567890
$ echo ${x:3}
4567890
$ echo ${x:7}
890
$ echo ${x:3:5}
45678
${var:pos}
表示变量var
从偏移量开始扩展pos
。${var:pos:len}
表示变量var
被扩展,从偏移量开始,pos
长度为len
。
答案2
在 bash 中,它会切掉(字符串)变量的前 3 个字符:
$ VAR="hello world"
$ echo ${VAR:3}
lo world
看看这里的“子串提取”:http://www.tldp.org/LDP/abs/html/string-manipulation.html。
答案3
该运算符截掉变量的前 3 个字符TEMP
,并将其余部分分配给变量VAR
。