小程序原生组件—提升你的小程序体验
936
2022-09-25
Linux/UNIX不同shell环境下数组的处理
特别注意在csh和其它shell中不同的是数组的下标是从1开始的。 |
[关于引用]全部引用方法一适用于bash、ksh、csh等大部分shell。${varname[*]}方法二只适用于bash、ksh,对于csh不适用。${varname[@]}
方法三
只适用于csh,不支持ksh和bash。$varname
请严格区分csh与bashcsh的区别。因为在csh中没有下标为0的数组元素,下标的序数是从1开始的。 |
方法一:只适用于bash和ksh,不支持csh。${#varname[*]}方法二:
只支持csh,不支持bash和ksh。
$#varname
数组中某一个值的字符长度只适用于bash和ksh,不支持csh。${#varname[1]}
在bash、ksh下 $varname与${varname[0]}的含意是一样的; $varname[1]与${varname[1]}含意是不一样的,$varname[1]等价于${varname[0]}"[1]"。在csh下 $varname与${varname[*]}的含意是一样的。 |
[元素的添加、删除]删除数组中元素:该方法适用于bash、ksh,不支持csh。unset varname[5]关于数组中元素的值的清除,即置空:bash和ksh下这样操作,不支持cshvarname[5]= #清除数组varname中的第六个元素关于数组的清除:适用于bash、ksh、csh等大部分shell。unset varname
向数组中添加元素:方法一、二只适用于bash、ksh,不适用于csh;
方法一:varname=(${varname[*]} varn-1 varn varn+1)方法二:varname[${#varname[*]}]=varn方法三:是csh特有的。set varname=($varname varn+1 varn+2) #或者$varname用${varname[*]}替换。
[关于数组的批量处理]这部分内容,说白了就是综合运用各种shell的内建循环命令。只要对前面的内容熟悉了,并对各种shell的循环命令有一定的了解,难度就不是很大。由于涉及bashkshcsh下的实现及不同的语法形式,涉及数组的赋值、添加和删除元素、读取多个方面。所以计划单独一篇文章来说明。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~