sh 不像 bash 和 ksh 那樣可以非常方便的定義和使用數(shù)組,但是可以通過其它方式來模擬數(shù)組。
【方法1】通過 set 命令和位置參數(shù)來模擬數(shù)組
# 定義數(shù)組
set 'word 1' word2 word3
# 輸出數(shù)組的第一個元素
echo $1
# 輸出數(shù)組的第二個元素
echo $2
# 輸出數(shù)組的第三個元素
echo $3
# 輸出數(shù)組的所有元素
echo $*
echo $@
# 向數(shù)組中增加一個元素
set -- "$@" word4
echo $4
# 查看數(shù)組元素的個數(shù)
echo $#
# 遍歷數(shù)組元素
for i in do "$@"; do
echo "$i"
done
# 從數(shù)組中刪除一個元素
shift
echo $@
# 刪除數(shù)組的所有元素
set x; shift
【方法2】使用 eval 命令模擬數(shù)組
定義數(shù)組并遍歷數(shù)組元素:
#!/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
根據(jù)用戶輸入的一句話來定義數(shù)組并遍歷數(shù)組元素:
#!/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