compound variable in korn shell


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting compound variable in korn shell
# 1  
Old 08-30-2007
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=(
[datetype] fild1 [=value]
[datetype] fild1 [=value]
)

but this sintax in ksh and sh (HP-UNIX) not work...

why?? exist another solution for this type of variable ???
# 2  
Old 08-30-2007
That syntax is correct. For ksh93 only.

try:
Code:
a="one.two"
echo $a
one.two
echo ${a%.*}
one
echo ${a#*.}
two

# 3  
Old 10-02-2007
i cut the page.. read this

Compound Variables
The Korn shell also supports compound variables, which are similar to structures or records in other
languages, that is a meta-datatype which is a group of related values, each of which can have a different
data type. The syntax for declaring compund variables is:

compound_variable=(
[datatype] field1[=value]
. . .
[datatype] fieldn[=value]
)

For example, we can use a compound variable to manage employee information:
$ employee=(
typeset name=Allenby
integer id=1243
float salary=9000.50
)

The syntax to display the value of a compound variable field is:

${compound_variable.field}
Here we access the employee compound variable:
$ print $employee
( typeset -E salary=9000.5 name=Allenby typeset -i
id=1243 )
$ print ${employee.name}


in HP/ksh not work....


and this :

$ typeset -AE exchange_rate
$ exchange_rate["DM"]=1.7
$ exchange_rate["FF"]=.15
$ exchange_rate["AS"]=.04
To display a list of associative array subscripts:
${!variable[*]} or ${!variable[@]}

not work ???
# 4  
Old 10-02-2007
You need ksh93 (not ksh88):

Code:
$ Version M-11/16/88i
$ typeset -AE exchange_rate
ksh: typeset: bad option(s)

Code:
$ /usr/dt/bin/dtksh
$ print ${.sh.version}
Version M-12/28/93
$ typeset -AE exchange_rate
$ exchange_rate[DM]=1.7
$ exchange_rate[FF]=.15
$ exchange_rate[AS]=.04
$ print ${exchange_rate[FF]}
0.15
$ print ${exchange_rate[@]}
1.7 0.15 0.04
$ print ${!exchange_rate[@]}
DM FF AS

# 5  
Old 10-03-2007
OK. !!!
exist a more info or manual to see a difference from ksh ???

( i try sobstitute the declare in my shells but the shell return more error in other point !!!!)

i serach with emule "dtksh" but i not found result .....
# 6  
Old 10-03-2007
HP's version of ksh (ksh88) does not support compound variables. You will have to do one of these:
1. See if any of these downloads are for you:
KornShell Software
2. See if zsh will work for you:
ZSH - THE Z SHELL
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to import a variable Used in Another Korn Shell Script?

Hi I am using two shell scripts which are running on the system simultaneously. And in one of the script i am exporting an Integer Variable. Now i want to use the variable in another script. But i cannot run the first script in the second as the first script has many other functions which... (3 Replies)
Discussion started by: Ajesh
3 Replies

2. Shell Programming and Scripting

Korn Shell help - Using parameter to create variable names

I'm using korn shell and I am wondering if it's possible to use a parameter passed into a function to build a variable name in a configuration file. I have the function in one source file, I'd like to have a global configuration file instead of hardcoding logins to each script. So I have a... (7 Replies)
Discussion started by: mrevello
7 Replies

3. 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

4. Shell Programming and Scripting

korn shell: check the content of a string of a variable

hello, i have a variable which should have following content : var="value1" or var="value2" or var="value2:*" # example: value2:22 how can i check : - if the content is ok (value1 / value2* ) - the two options of "value2" when content is example "value2:22" , i want to split... (3 Replies)
Discussion started by: bora99
3 Replies

5. Programming

How to refer to variable (korn shell)?

Hi I have the following block of code in korn shell and don't now how to refer to variable `print variable1.$dvd` ? --- integer dvd=4 integer number=0 while (( dvd!=0 )) do print "Iteracja numer : $dvd" print "$_" #it refers to $dvd var but want to refer... (3 Replies)
Discussion started by: presul
3 Replies

6. Shell Programming and Scripting

Korn Shell Variable values difference

I am using two shell scripts a.ksh and b.ksh a.ksh 1. Sets the value +++++++++++++++++ export USER1=abcd1 export PASSWORD=xyz +++++++++++++++++ b.ksh 2. Second scripts calls sctipt a.ksh and uses the values set in a.ksh and pass to an executable demo... (2 Replies)
Discussion started by: kunalseth
2 Replies

7. 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

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. Shell Programming and Scripting

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 do ... (3 Replies)
Discussion started by: neemic
3 Replies
Login or Register to Ask a Question