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

${ name[*]} ${ name[@]} ${ name[#*/]} ${ name[%%*]} ${ #name[*]} ${ name:-Hello}

在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,有中文版的。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答