UNIX sh(Bourne Shell)脚本里面使用数组的两种方法
2016-12-04 23:53
921 查看
sh 不像 bash 和 ksh 那样可以非常方便的定义和使用数组,但是可以通过其它方式来模拟数组。
【方法1】通过 set 命令和位置参数来模拟数组
# 定义数组 set 'word 1' word2 word3 # 输出数组的第一个元素 echo $1 # 输出数组的第二个元素 echo $2 # 输出数组的第三个元素 echo $3 # 输出数组的所有元素 echo $* echo $@ # 向数组中增加一个元素 set -- "$@" word4 echo $4 # 查看数组元素的个数 echo $# # 遍历数组元素 for i in do "$@"; do echo "$i" done # 从数组中删除一个元素 shift echo $@ # 删除数组的所有元素 set x; shift
【方法2】使用 eval 命令模拟数组
定义数组并遍历数组元素:
#!/bin/sh eval a1=word1 eval a2=word2 eval a3=word3 for i in 1 2 3; do eval echo "The $i element of array is: \$a$i" done
根据用户输入的一句话来定义数组并遍历数组元素:
#!/bin/sh echo "Enter the sentence:" read str n=0 for word in $str; do n=`expr $n + 1` eval a$n="$word" eval echo "The $n element of array is: \$a$n" done
相关文章推荐
- ant 脚本里面启动、停止tomcat的两种方法
- zabbix3.0.4使用shell脚本和zabbix自带模板两种方法添加对指定进程和端口的监控
- 关于javascript里面仿python切片操作数组的使用方法
- 1.如何避免野指针2.获取字符串的两种方法。以及malloc,calloc,ralloc的使用注意点3.二维三维数组4.数组和函数的区别
- 使用JSP的调用表达式和调用脚本两种方法打印九九乘法表
- shell脚本使用两个数组,判断一个变量是否在数组里面的例子
- zabbix3.0.4使用shell脚本和zabbix自带模板两种方法添加对指定进程和端口的监控
- zabbix使用自己编写脚本模板和zabbix自带模板两种方法添加对指定进程和端口的监控
- 实现冒泡排序。(排序整形数组)。使用数组和指针两种方法。
- ant 脚本里面启动、停止tomcat的两种方法
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- Javascript里的两种使用正则的方法
- RSS制作(C#) - 使用XML DOM和XmlTextWriter(见评论)两种方法
- 使用 ClientScriptManager 类的 RegisterClientScriptBlock方法添加客户端脚本
- oracle 两种方法不同的效率!务必少使用 not in
- Dev里面DataGid控件使用方法之一
- 控件开发时两种JS嵌入资源方式的使用方法
- Visual C#2005——如何使用ToArray方法返回一个强类型数组
- Visual C#2005——如何使用ToArray方法返回一个强类型数组
- RSS制作(C#) - 使用XML DOM和XmlTextWriter(见评论)两种方法