茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1670802 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
GoodSmile_LuskyStar x StreetFighter_00063.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [轉貼]Bash For Loop Array: Iterate Through Array Values

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]Bash For Loop Array: Iterate Through Array Values
Bash For Loop Array: Iterate Through Array Values
by Vivek Gite on April 13, 2008 last updated October 27, 2009

in BASH Shell, CentOS, Debian / Ubuntu, FreeBSD, Linux, RedHat and Friends, Suse, Ubuntu Linux, UNIX

How do I use bash for loop to iterate thought array values under UNIX / Linux operating systems?

The Bash provides one-dimensional array variables. Any variable may be used as an array; the declare builtin will explicitly declare an array. There is no maximum limit on the size of an array, nor any requirement that members be indexed or assigned contiguously. Arrays are indexed using integers and are zero-based.

To declare an array in bash

Declare and an array called array and assign three values:
array=( one two three )

More examples:
files=( "/etc/passwd" "/etc/group" "/etc/hosts" )
limits=( 10, 20, 26, 39, 48)

To print an array use:
printf "%s\n" "${array[@]}"
printf "%s\n" "${files[@]}"
printf "%s\n" "${limits[@]}"

To Iterate Through Array Values

Use for loop syntax as follows:
for i in "${arrayName[@]}"
do
   :
   # do whatever on $i
done

$i will hold each item in an array. Here is a sample working script:
#!/bin/bash
# declare an array called array and define 3 vales
array=( one two three )
for i in "${array[@]}"
do
	echo $i
done


原文出處:Bash For Loop Array: Iterate Through Array Values
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]Bash Shell Script Iterate Through Array Values
Bash Shell Script Iterate Through Array Values

Posted August 30, 2004 by Quinn McHenry in Bourne shell scripting

Having an array of variables is of no use unless you can use those values somehow. This tech-recipe shows a few methods for looping through the values of an array in the bash shell.

Take, for example, the array definition below:
names=( Jennifer Tonya Anna Sadie )

The following expression evaluates into all values of the array:
${names[@]}

It also can be used anywhere a variable or string can be used.

A simple for loop can iterate through this array one value at a time:
for name in ${names[@]} do
echo $name
# other stuff on $name
done

This script will loop through the array values and print them out, one per line. Additional statements can be placed within the loop body to take further action, such as modifying each file in an array of filenames.

Sometimes it is useful to loop through an array and know the numeric index of the array you are using (for example, so that you can reference another array with the same index). The same loop in the example above can be achieved this way, too:
for (( i = 0 ; i < ${#names[@]} ; i++ )) do echo ${names[$i]} # yadda yadda done

In this example, the value ${#names[@]} evaluates into the number of elements in the array (4 in this case). The individual elements of the array are accessed, one at a time, using the index integer $i as ${names[$i]}

原文出處:Bash Shell Script Iterate Through Array Values
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|