当前位置: 首页 > 编程笔记 >

UNIX sh(Bourne Shell)脚本里面使用数组的两种方法

杜俊远
2023-03-14
本文向大家介绍UNIX sh(Bourne Shell)脚本里面使用数组的两种方法,包括了UNIX sh(Bourne Shell)脚本里面使用数组的两种方法的使用技巧和注意事项,需要的朋友参考一下

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
 类似资料:
  • 本文向大家介绍C#数组排序的两种常用方法,包括了C#数组排序的两种常用方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#数组排序的两种常用方法。分享给大家供大家参考。具体如下: 1.第一个例子 定义代码 测试代码 1.第二个例子 定义代码 测试代码 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍详解shell中脚本参数传递的两种方式,包括了详解shell中脚本参数传递的两种方式的使用技巧和注意事项,需要的朋友参考一下 方式一:$0,$1,$2.. 采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${10},${11}....才能获取到参数,但是一般很少会超过

  • 本文向大家介绍Shell脚本中调用、引用、包含另外一个脚本文件的两种方法,包括了Shell脚本中调用、引用、包含另外一个脚本文件的两种方法的使用技巧和注意事项,需要的朋友参考一下 脚本 first (测试示例1)   问)在当前脚本文件中调用另外一个脚本文件? 方法一: 使用 source 脚本 second (测试示例2) 方法二: 使用 . 脚本 second (测试示例3) source f

  • 本文向大家介绍Numpy数组转置的两种实现方法,包括了Numpy数组转置的两种实现方法的使用技巧和注意事项,需要的朋友参考一下 Numpy数组转置很容易,两种写法 但是一维数组转置的时候有个坑,光transpose没有用,需要指定shape参数 输出结果为 可见原本一维数组的shape第二的纬度那个1是空的,指定了以后才能顺利地讲行向量转为列向量 以上这篇Numpy数组转置的两种实现方法就是小编分

  • 本文向大家介绍JavaScript数组去重的两种方法推荐,包括了JavaScript数组去重的两种方法推荐的使用技巧和注意事项,需要的朋友参考一下 1、数组去重; Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法: 方法一:利用indexOf方法; 方法二: 方法二,总体思路是把数组元素逐个搬运到另一个数组,搬运的过程中检查这个元素是否有重复,如果有就直接丢掉。从嵌

  • 本文向大家介绍shell脚本使用两个横杠接收外部参数的方法,包括了shell脚本使用两个横杠接收外部参数的方法的使用技巧和注意事项,需要的朋友参考一下 首先,效果是这样的: 既可以处理短选项(-)又可以处理长选项(--) shell脚本接外部参数有一种很简单的办法,在脚本中使用$0,$1,$2...指代执行脚本时传入的第几个参数($0是脚本名)。 但是,这样做毕竟不够优雅, 另一种方法shell脚