UNIX sh(Bourne Shell)脚本里面使用数组的两种方法
sh不像bash和ksh那样可以非常方便的定义和使用数组,但是可以通过其它方式来模拟数组。
【方法1】通过set命令和位置参数来模拟数组
#定义数组 set'word1'word2word3 #输出数组的第一个元素 echo$1 #输出数组的第二个元素 echo$2 #输出数组的第三个元素 echo$3 #输出数组的所有元素 echo$* echo$@ #向数组中增加一个元素 set--"$@"word4 echo$4 #查看数组元素的个数 echo$# #遍历数组元素 foriindo"$@";do echo"$i" done #从数组中删除一个元素 shift echo$@ #删除数组的所有元素 setx;shift
【方法2】使用eval命令模拟数组
定义数组并遍历数组元素:
#!/bin/sh evala1=word1 evala2=word2 evala3=word3 foriin123;do evalecho"The$ielementofarrayis:\$a$i" done
根据用户输入的一句话来定义数组并遍历数组元素:
#!/bin/sh echo"Enterthesentence:" readstr n=0 forwordin$str;do n=`expr$n+1` evala$n="$word" evalecho"The$nelementofarrayis:\$a$n" done