Trying to use 'compound variable' in a script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Trying to use 'compound variable' in a script
# 1  
Old 01-16-2004
Trying to use 'compound variable' in a script

Hi there - am newish to shell scripting and would appreciate some advice on this...

Am trying to use what I have seen called 'compound variables' in other langs but with no success in my shell script. This is the kind of thing I'm trying to do:

base_val=123
stop=3
x=1
while [ $x -le $stop ]
do
array_var[$x] = `expr $base_val + $x`
echo $x $array_var[$x]
x=`expr $x + 1`
done

The value of x is being incremented, but it is not being substituted as an index in the array variable called array_var. Here's the output:

./t2.ksh[8]: array_var[1]: not found
1 [1]
./t2.ksh[8]: array_var[2]: not found
2 [2]
./t2.ksh[8]: array_var[3]: not found
3 [3]

Is this completely the wrong approach, or is it an issue with the syntax?. What's the best way to achieve this?
Thanks in advance,

Neemic........:
# 2  
Old 01-16-2004
Syntax Problems

You need to remove the spaces either side of the equals sign during the array assignment. Also, you have to use curly brackets {} when referencing the array elements.
Code:
base_val=123
stop=3
x=1
while [ $x -le $stop ]
do
  array_var[$x]=`expr $base_val + $x`
  echo $x ${array_var[$x]}
  x=`expr $x + 1`
done

# 3  
Old 01-16-2004
Quote:
array_var[$x] = `expr $base_val + $x`
I think you should leave the spaces out in this line before and after the = .
# 4  
Old 01-16-2004
Ygor, Tine,

Thanks very much for the help - and thanks for not laughing!

:-)

Cheers,
neemic
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Refering to compound variables with a variable name

Hello, Here is my problem using KSH I have a set of compound variables, let say cmp_var1 cmp_var2 The names of these variables are stored in an indexed array. How can I access the subfields of these compound variables ? I tried: set -A cmp_varnames=(cmp_var1 cmp_var2) for cmp in... (4 Replies)
Discussion started by: luky55
4 Replies

2. Programming

tcl compound condition

Can anyone explain for me why this does not work in tcl: if !{( $a > "" || $b > "" )} { ....... where a and b are string vars. and this works instead: if {!( $a > "" || $b > "" )} { ........ Thanks. (6 Replies)
Discussion started by: gio001
6 Replies

3. Shell Programming and Scripting

compound Bash if then statement question

I am writing a Bash script that will either clone a database or setup a standby database. So Parameter 2 will be the operation type. If the value is not clone or standby I want to throw an error message. I suppose I can also do a case block. So far i have been unable to get the syntax working... (1 Reply)
Discussion started by: gandolf989
1 Replies

4. Shell Programming and Scripting

compound variable in korn shell

in a text " Korn Shell Unix programming Manual 3° Edition" i have found this sintax to declare a compoud variable: variable=( fild1 fild1 ) but this sintax in ksh and sh (HP-UNIX) not work... why?? exist another solution for this type of variable ??? (5 Replies)
Discussion started by: ZINGARO
5 Replies

5. Shell Programming and Scripting

compound variable in korn shell

in a text " Korn Shell Unix programming Manual 3° Edition" i have found this sintax to declare a compoud variable: variable=( fild1 (0 Replies)
Discussion started by: ZINGARO
0 Replies

6. Shell Programming and Scripting

awk compound statements

how can i use two or multiple statements in the if part of an awk code for example i want to check two flag if they are true i will write some print operations and increase the counter. here is the c version of the code that i want to write: counter=0; if (flag1==1 && flag2==0) {... (7 Replies)
Discussion started by: gfhgfnhhn
7 Replies

7. Shell Programming and Scripting

Compound command with 'find' utility?

I'm trying to write a script using the 'find' command and it's -exec option to run a compound command against the files found. Example: find . -name "*.conf" -exec cat {} | grep "#" > /tmp/comments.list \; Of course the above doesn't work. So I experimented for a bit to see if there was... (6 Replies)
Discussion started by: deckard
6 Replies

8. UNIX for Advanced & Expert Users

Compound indirect variable references

Using bash, I'm trying to read a .properties file (name=value pairs), assigning an indirect variable reference for each line in the file. The trick is that a property's value string may contain the name of a property that occurred earlier in the file, and I want the name of the 1st property to... (5 Replies)
Discussion started by: tkrussel
5 Replies

9. Shell Programming and Scripting

Trying to use 'compound variable' in a script

Erase the space in assigment operator. array_var=`expr $base_val + $x` (1 Reply)
Discussion started by: irina
1 Replies

10. UNIX for Dummies Questions & Answers

compound expression in unix

I am using the code below to write a command to launch a script only if the number of users on the system is less than 10. The code below isn't working. Any suggestions? HELP.. if && ; then frizzle ; fi (3 Replies)
Discussion started by: spalmer
3 Replies
Login or Register to Ask a Question