mk.*_*k.. 1 linux bash shell sh
在shell脚本的功能中,我看到这样的东西
func()
{
local x
x=${1:3:1}
...
}
Run Code Online (Sandbox Code Playgroud)
什么x=${1:3:1}意思?我知道$1,$2并且$3是函数的参数.那么上述陈述是否意味着x = $1:$2:$3?
此外,如果有人可以建议我如何谷歌搜索这样的特殊字符,这真的很有用吗?任何标准关键字?我试着搜索'是什么':"在shell脚本中等等.但是在尝试搜索特殊字符时结果是随机的.
这在shell中称为参数扩展.
$ {PARAMETER:OFFSET:LENGTH}
给定一个开始的位置并且可能是一个长度,这个只能扩展参数值的一部分.如果省略LENGTH,则参数将扩展到字符串的末尾.如果LENGTH为负数,则将其作为字符串的第二个偏移量,从字符串的末尾开始计算.
OFFSET和LENGTH可以是任何算术表达式.OFFSET从0开始,而不是从1开始.
例如,假设参数是一个字符串,
MYSTRING ="你接受的是自由,你发送的是保守的"
回声$ {MYSTRING:34:13}
以上将为您提供以下内容
保守
因为它会计算第33个(索引从0开始)字符,它将以字符"c"开头,然后计数(13个字符)长度.
因此,在您的情况下,$ 1是您传递给脚本的参数,然后它会偏移该字符的3个字符并获取长度为1的字符串并将其初始化为x.
在这里阅读更多内容:http://wiki.bash-hackers.org/syntax/pe#substring_expansion