簡體   English   中英

Shell腳本數組

[英]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


*感謝@Mat提醒我這個!

如果您已將變量聲明為數組並正確打印它,它應該可以工作:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM