UNIX sh(Bourne Shell)シナリオには配列を使う2つの方法があります。
shはbashやkshのように配列を定義したり、使用したりするのに非常に便利ですが、他の方法で配列をシミュレートすることができます。
【方法1】セットコマンドと位置パラメータで配列をシミュレートする
配列を定義し、配列要素を巡回します。
【方法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