[英]Shell script arrays
我想用循環設置數組元素:
for i in 0 1 2 3 4 5 6 7 8 9
do
array[$i] = 'sg'
done
echo $array[0]
echo $array[1]
所以它不起作用。 如何..?
刪除空格:
array[$i]='sg'
此外,您應該將元素作為*訪問:
echo ${array[0]}
參見例如http://tldp.org/LDP/abs/html/arrays.html 。
如果您已將變量聲明為數組並正確打印它,它應該可以工作:
declare -a array
for i in 0 1 2 3 4 5 6 7 8 9
do
array[$i]="sg"
done
echo ${array[0]}
echo ${array[1]}
在這里看到它。
HTH
# Declare Array
NAMEOFSEARCHENGINE=( Google Yahoo Bing Blekko Rediff )
# get length of an array
arrayLength=${#NAMEOFSEARCHENGINE[@]}
# use for loop read all name of search engine
for (( i=0; i<${arrayLength}; i++ ));
do
echo ${NAMEOFSEARCHENGINE[$i]}
done
輸出:
谷歌
雅虎
兵
Blekko的
Rediff的
你的echo語句有問題:給${array[0]}
和${array[1]}
我對這個循環的看法:
array=( $(yes sg | head -n10) )
甚至更簡單:
array=( sg sg sg sg sg sg sg sg sg sg )
有關證據,請訪問http://ideone.com/DsQOZ 。 另請注意,bash 4+ readarray:
readarray array -t -n 10 < <(yes "whole lines in array" | head -n 10)
實際上,readarray是最通用的,例如,將名稱中的bash進入前10個進程的PID到數組中(如果沒有10個這樣的進程,則可以返回數組大小<10):
readarray array -t -n 10 < <(pgrep -f bash)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.