變量:一段記憶體空間,用于存儲字元,數字等資訊.
數組:
如何申明一個數組:
指派方法1:
AA[0]=jerry
AA[1]=tom
AA[3]=wendy
AA[6]=natasha
指派方法2:
AA=(jerry "tom obama" wendy natasha)
AA=([0]=jerry [1]=tom [2]=wendy [6]=natasha)
AA[3]=selina
AA[4]=nikita
如何擷取數組中非空的字元個數
${#AA[*]} 或者 ${#AA[@]}
如何擷取數組中某一組值的字元長度
${#AA[0]} :表示數組中第一組值的字元長度
${#AA[1]} :表示數組中第二組值的字元長度
.....
${#AA[N]} :表示數組中第N-1組值的字元長度
腳本執行個體:
執行個體一:
寫一個腳本:随機從10個同學們中選擇一位出來回答問題。
vim student.sh
#!/bash/bin
#
# 随機從10個同學選擇一個,并顯示出來。
AA=(jerry "tom stail" wendy natasha kely selina john jack xiaowu "A dong")
INDEX=$[$RANDOM%10]
echo "${AA[$INDEX]}"
附加:
從10個同學裡面随機十次,并顯示出他們的名字
for I in {1..10}; do
done
[root@john script]# bash student.sh
wendy
tom stail
jerry
kely
natasha
xiaowu
jack
執行個體二:
寫一個腳本:顯示10個随機數,并從中選出最大數;
vim findmax.sh
# 顯示10個随機數,并從中選出最大數;
for I in {0..9}; do
ARRAY[$I]=$RANDOM
echo -n "${ARRAY[$I]} "
sleep 1
echo
declare -i MAX=${ARRAY[0]}
INDEX=${#ARRAY[*]}
for I in `seq 1 $[$INDEX-1]`; do
if [ $MAX -lt ${ARRAY[$I]} ]; then
MAX=${ARRAY[$I]}
fi
echo "The MAX Number is $MAX !"
執行結果:
[root@john script]# sh findmax1.sh
9794 23744 258 23323 26204 15429 3985 5762 26162 24422
The MAX Number is 26204 !
執行個體三:
寫一個腳本,選擇随機生成0-39中不相同的數字;
# 輸入需要顯示的數字個數,并顯示,且不能重複。
read -p "The element numbers[1-39]: " ELENUM
declare -a ARRAY #申明一個數組
function COMELE {
for J in `seq 0 $[${#ARRAY[@]}-1]`; do
if [ $1 -eq ${ARRAY[$J]} ]; then
return 1
fi
done
return 0
}
for I in `seq 0 $[$ELENUM-1]`; do
while true ; do
ELEMENT=$[$RANDOM%40]
COMELE $ELEMENT
if [ $? -eq 0 ]; then
break
fi
ARRAY[$I]=$ELEMENT
echo "${ARRAY[$I]}"
done