UNIX sh(Bourne Shell)シナリオには配列を使う2つの方法があります。


shはbashやkshのように配列を定義したり、使用したりするのに非常に便利ですが、他の方法で配列をシミュレートすることができます。
【方法1】セットコマンドと位置パラメータで配列をシミュレートする

#     
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