LINUX中${ name[*]} 表达什么意思

发布网友 发布时间:2022-04-23 07:42

我来回答

1个回答

热心网友 时间:2022-06-17 20:37

在linux的shell里,${name}可以表示变量,也可以表示数组。

name后面加〔〕的,一般是数组,
${name[*]}是数组所有元素(all of the elements)
${name[@]}是数组每一个元素(each of the elements)
其实这两个几乎一样,差别主要在于当加上引号时,"${name[*]}"等于所有数组元素及其分隔符(一般是空格)排成的字符串,而"${name[@]}"仍然表示每一个元素。
${#name[*]}是数组元素的个数,也可以写成${#name[@]}

${name:-Hello} 是指,如果${name}没有赋值,那么它等于Hello,如果赋值了,就保持原值,不用管这个Hello了。

至于${name[#*/]},好像没有这种写法,可能是你弄错了。
${name[%%*]}也不存在。不过,如果是${name##*}就有意义了,不过是空值。本来可以给你解释一下的,但估计说太多就把你弄糊涂了。如果你真的是在看linux的shell的话,可以在网上找advance bash scripting guide,有中文版的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com