Sponsored Content
Top Forums Shell Programming and Scripting '*' vs. '@' in Korn Shell Array Variables Post 302673091 by Clovis_Sangrail on Tuesday 17th of July 2012 12:28:16 PM
Old 07-17-2012
More Cool ksh Array Stuff

It turns out that the korn shell also has array constructs that supply the indices of an array, from 0 up to the largest defined element, either all-at-once or one-at-a-time in a loop.

For an array AR, ${!AR[*]} expands to the string "0 1 2 .. N" . So does the construct ${!AR[@]} but this latter povides one subscript at a time in a 'for' loop, while the former consrtruct feeds everything at once. I have expanded my test program:

Code:
#!/usr/bin/ksh93.att
 
MENU[0]="First Menu Line"
MENU[1]="Second Menu Line"
MENU[2]="Third Menu Line"
 
ITEMCNT=${#MENU[@]}
ITEMCNTSTAR=${#MENU[*]}
ALLITEMS="${MENU[@]}"
ALLITEMSSTAR="${MENU[*]}"
BANGCNT="${!MENU[@]}"
BANGCNTSTAR="${!MENU[*]}"
 
echo
echo ITEMCNT = $ITEMCNT
echo ITEMCNTSTAR = $ITEMCNTSTAR
echo ALLITEMS = $ALLITEMS
echo ALLITEMSSTAR = $ALLITEMSSTAR
echo BANGCNT = $BANGCNT
echo BANGCNTSTAR = $BANGCNTSTAR
echo
 
echo For Loop for ALLITEMS
echo =================
for STR in "${MENU[@]}"
do
    echo $STR
done
 
echo
echo For Loop for ALLITEMSSTAR
echo =====================
for STR in "${MENU[*]}"
do
    echo $STR
done
 
echo
echo For Loop for BANGNT
echo ===============
for STR in "${!MENU[@]}"
do
    echo $STR
done
 
echo
echo For Loop for BANGNTSTAR
echo ===================
for STR in "${!MENU[*]}"
do
    echo $STR
done
echo

When I run it I now get:
Code:
 
lipossrp01ga:/home/lc25487/ksh $ ./t2.ksh
 
ITEMCNT = 3
ITEMCNTSTAR = 3
ALLITEMS = First Menu Line Second Menu Line Third Menu Line
ALLITEMSSTAR = First Menu Line Second Menu Line Third Menu Line
BANGCNT = 0 1 2
BANGCNTSTAR = 0 1 2
 
For Loop for ALLITEMS
=================
First Menu Line
Second Menu Line
Third Menu Line
 
For Loop for ALLITEMSSTAR
=====================
First Menu Line Second Menu Line Third Menu Line
 
For Loop for BANGNT
===============
0
1
2
 
For Loop for BANGNTSTAR
===================
0 1 2
 
lipossrp01ga:/home/lc25487/ksh $

 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Oracle To Korn Shell Array

I'm attempting to populate an array in ksh using the following command: set -A $(SELECT_INVOICE | sed '/^$/d') SELECT_INVOICE is a function that executes the SQL query. Problem: Some of the invoice numbers have alpha characters with spaces(example: OVEN MICRO). The Korn shell is treating... (1 Reply)
Discussion started by: kdst
1 Replies

2. Shell Programming and Scripting

korn shell array?

I read it is possible to provide values for an array with the -A option to the read statement; however, I have not been able to get this to work. When I execute a script with the -A option to the read statement, the shell complains that it is an illegal option. If this works, can someone provide... (5 Replies)
Discussion started by: cstovall
5 Replies

3. Shell Programming and Scripting

Variables Naming in Korn Shell

Hi every body, I want to know what is the different between the following: $VAR1 ${VAR2} "${VAR3}" Are they equivalent? Thanks in advance (1 Reply)
Discussion started by: aldowsary
1 Replies

4. Shell Programming and Scripting

I can't decalar an array in my korn shell script

I have a script that contains #!/usr/bin/ksh set -A X 'hallo' 'world' echo ${X} echo ${X} when I execute it I get an errror message sh ./test.ksh ./test.ksh: -A: bad option(s) but if I do this at the command prompt I am able to create it set -A myarray '1' '2' '3' echo ${myarray}... (4 Replies)
Discussion started by: zilla30066
4 Replies

5. Shell Programming and Scripting

How to: Parse text string into variables using Korn shell

I am writing a script to keep check on free disk space, and I would like to find a way to parse $LINE (see code below) into a numeric value (for free disk space percentage) and a string value (for mount point). If possible, I would like to avoid sed or any additional use of awk since I am not very... (7 Replies)
Discussion started by: shew01
7 Replies

6. UNIX for Advanced & Expert Users

Accessing PL/SQL OUT variables in Korn Shell Script

Hello All, I was just wondering if there is any direct way to access PL/SQL OUT variables from Korn Shell Script. I could already figure out how to return a single value back from PL/SQL to Shell Script (using bind variable). But, what if we want to return multiple values? One option I... (4 Replies)
Discussion started by: bright_future
4 Replies

7. Shell Programming and Scripting

need help with korn shell array

I have a korn shell script that reads a file with just one column in the file. If the file has more than 5 entries it is split using split -5. This means that is we have 15 entries I will end up with 3 files with 5 entries/lines in each and if I have 23 entries I will end up with 5 files with the... (2 Replies)
Discussion started by: kieranfoley
2 Replies

8. Shell Programming and Scripting

Generate array name at run time Korn shell

Hi, I am trying to define number of array based on constant derived during execution phase of a script. Here is what i am trying.. #First Part, Get LUN input from User lun_count=4 count=0 set -A my_lun while : do while ]; do read L?"Enter Lun "$count" Number:" ... (2 Replies)
Discussion started by: harris2107
2 Replies

9. Shell Programming and Scripting

floating point variables korn shell

Hi I'm not using Korn93 but want to use floating point variable. Is there any solution to do that ? thx for help. ---------- Post updated at 02:28 PM ---------- Previous update was at 12:38 PM ---------- I have the following peace of code: for n in `cat log.January.1.array` do ... (3 Replies)
Discussion started by: presul
3 Replies

10. Shell Programming and Scripting

Korn Shell Array maximum value less than other value

I have a text file with several key words that I am trying to isolate. I have grepped for the unknowns in the text file, but each unknown has a corresponding location. I have created an array that holds all the unknowns and another array that holds all of the locations and compares them based on... (12 Replies)
Discussion started by: ther2000
12 Replies
All times are GMT -4. The time now is 03:18 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy