problems with arrays


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting problems with arrays
# 1  
Old 08-25-2008
problems with arrays

Hi guys,

I want to extract the start and end cylinders of each partition from output of "fdisk -l". I tried to dump the info in an array and then extract from there. Here's the code I have written so far:

Quote:
sizes=`fdisk -l | grep "Linux"` #s
sizes_expanded=$(echo $sizes | sed 's/\(.\)/\1/g') #e
sizes_array=($sizes_expanded) #a

for i in $(seq 0 $(((${#sizes_array[*]} - 1)/6))); do
start_size=$(((6*$i) + 1))
echo "Start addresses = sizes_array[$i]=\"${sizes_array[(((6*$i) + 1))]}\""
done

ends=`fdisk -l | grep "Linux"` #s
ends_expanded=$(echo $ends | sed 's/\(.\)/\1/g') #e
ends_array=($ends_expanded) #a

for i in $(seq 0 $(((${#ends_array[*]} - 1)/6))); do
start_size=$(((6*$i) + 1))
echo "End addresses = ends_array[$i]=\"${ends_array[(((6*$i) + 2))]}\""
done

#########################################################################
#Now calculate the size from the start and end addresses
#########################################################################

declare -a size_arr
for k in $(seq 0 $(((${#sizes_array[*]} - 1)/6))); do
size_arr[$k]=$(($ends_array[$k]-$size_array[$k]))
echo $size_arr[$k]
done
exit 0
and here's the output:

Quote:

Succeeded! Disks found on this machine
Number of Disks on this machine: 2
/dev/hda
/dev/hdd
Start addresses = sizes_array[0]="1"
Start addresses = sizes_array[1]="1001"
Start addresses = sizes_array[2]="2940"
Start addresses = sizes_array[3]="4879"
Start addresses = sizes_array[4]="5849"
Start addresses = sizes_array[5]="8781"
Start addresses = sizes_array[6]="10720"
Start addresses = sizes_array[7]="7788"
Start addresses = sizes_array[8]="1"
Start addresses = sizes_array[9]="3877"
Start addresses = sizes_array[10]="7753"
End addresses = ends_array[0]="1000"
End addresses = ends_array[1]="2939"
End addresses = ends_array[2]="4878"
End addresses = ends_array[3]="5848"
End addresses = ends_array[4]="7787"
End addresses = ends_array[5]="10719"
End addresses = ends_array[6]="16644"
End addresses = ends_array[7]="8036"
End addresses = ends_array[8]="3876"
End addresses = ends_array[9]="7752"
End addresses = ends_array[10]="10859"
./part: line 67: /dev/hda1[0]-[0]: syntax error: operand expected (error token is "/dev/hda1[0]-[0]")
I am trying to subtract the start and end cylinders to find how long each partition is in terms of cylinders. I want to put that in an array too, but I can't seem to get the right output! Can someone please take a quick look at the code and tell me what I am doing wrong?

Thank you
# 2  
Old 08-26-2008
Replace this line:

Code:
size_arr[$k]=$(($ends_array[$k]-$size_array[$k]))

with:

Code:
let size_arr[$k]=${$ends_array[$k]}-${size_array[$k]}

Regards
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Arrays

Am using bash For eg: Suppose i have a array arr=(1 2 3 4 5 6 7 8 9 10 11 12) suppose i give input 5 to a script and script should able to print values greater than or equal to 5 like below: Input: 5 output: 5,6,7,8,9,10,11,12 (7 Replies)
Discussion started by: manid
7 Replies

2. Shell Programming and Scripting

Using arrays?

I have never used arrays before but I have a script like this: var1=$(for i in $(cat /tmp/jobs.021013);do $LIST -job $i -all | perl -ne 'print /.*(\bInfo.bptm\(pid=\d{3,5}).*/' | tr -d "(Info=regpid" | tr -d ')'; $LIST -job $i -all | cut -f7 -d','| sed -e "s/^\(*\)\(*\)\(*\)\(.*\)/\1... (2 Replies)
Discussion started by: newbie2010
2 Replies

3. Shell Programming and Scripting

Arrays and functions

Hi Guys! I need to solve this. I want an array to be created by a certain calculation for which I created a function. Now this array is not getting created. See script below I want array b to be the factorial value of array element a. Help is needed. Thanks! #!/bin/bash echo "Number of... (17 Replies)
Discussion started by: ambijat
17 Replies

4. Programming

Arrays in C++

I've noticed something interesting in C++ programming. I've always done tricky stuff with pointers and references to have functions deal with arrays. Doing exercises again out of a C++ book has shown me an easier way, I didn't even know was there. It's weird to me. When dealing with arrays, it... (4 Replies)
Discussion started by: John Tate
4 Replies

5. Shell Programming and Scripting

How can I use the arrays ?

Hi all, I have a file test1.txt with the below contents abc def ghj xyz I tried printing these values using arrays. Script tried : =========== set -A array1 `cat test1.txt` count=${#array1 } i=0 while do echo "element of array $array1" done (1 Reply)
Discussion started by: dnam9917
1 Replies

6. Programming

question about int arrays and file pointer arrays

if i declare both but don't input any variables what values will the int array and file pointer array have on default, and if i want to reset any of the elements of both arrays to default, should i just set it to 0 or NULL or what? (1 Reply)
Discussion started by: omega666
1 Replies

7. UNIX for Dummies Questions & Answers

arrays how to?

Hello, I am some what of a newbie to awk scripting and I seem to be struggling with this problem. I know I need to use arrays but I can't figure out how to use them. I have an input file that looks like this; Name,Team,First Test, Second Test, Third Test Crystal,Red,5,17,22... (1 Reply)
Discussion started by: vlopez
1 Replies

8. Web Development

PHP arrays in arrays

PHP question... I have an SQL query that's pulled back user IDs as a set of columns. Rather than IDs, I want to use their names. So I have an array of columns $col with values 1,7,3,12 etc and I've got an array $person with values "Fred", "Bert", "Tom" etc So what I want to do is display the... (3 Replies)
Discussion started by: JerryHone
3 Replies

9. Shell Programming and Scripting

Arrays

Dear all, How can i unset arrays. I mean all the subscripts including the array after using them. Could you direct me to some links of array memory handling in the korn shell. Thanks (2 Replies)
Discussion started by: earlysame55
2 Replies

10. Programming

perl arrays

hello ppl, i'm coding a perl script and i have the following situation: @array1 = ("test1", "test2", "test3"); @array2 = ("something1", "something2", "something1"); $var1 = "with_one_of_the_array1_values"; $var2 = "with_one_of_the_array2_values"; what i want to do is to compare $var1... (2 Replies)
Discussion started by: crashnburn
2 Replies
Login or Register to Ask a Question