Ser*_*bek 5 parameters bash function parameter-passing
在我发现的脚本中,我看到了这种结构:
is_true() {
local var=${1,,}
...
Run Code Online (Sandbox Code Playgroud)
据我所知,它是某种参数传递.$ 1,$ 2,$#我理解但$ {1 ,,}代表什么?
这个(${1,,})在bash版本4+中称为"参数扩展".这里它用于更改存储在变量中的字符串的大小写,在本例中是脚本的第一个参数.
一些例子:小写转换.
x='HellO'
echo ${x}
HellO
echo ${x,,}
hello
Run Code Online (Sandbox Code Playgroud)
要转换$x为大写.
echo ${x^^}
HELLO
Run Code Online (Sandbox Code Playgroud)
要颠倒案件:
x='Hey there'
echo ${x~~}
hEY THERE
Run Code Online (Sandbox Code Playgroud)