Shell string array


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
Shell string array

Hi all,

I want to create an array variable in shell, for example:
Code:
#!/bin/sh
name[0]="foo"
name[1]="bar"
name[2]="baz"

But above code didn't work, I also tried with:
Code:
name=(foo bar baz)

and
Code:
set -A name foo bar baz

but none of these worked.

Another question is how to know the shell version on my Ubuntu system?
I tried
Code:
/bin/sh --version

and
Code:
sh --version

, but both failed.

Thanks for your help.
Roy987

Last edited by Roy987; 05-16-2012 at 07:32 AM..
# 2  
/bin/sh on ubuntu is always bash. Unless you opted to use another POSIX compliant shell on install.

Does
Code:
ls -l /bin/sh /bin/bash /usr/bin/bash
echo $SHELL

provide any enlightenment?

Last edited by jim mcnamara; 05-17-2012 at 10:01 PM..
This User Gave Thanks to jim mcnamara For This Post:
# 3  
The following is the output from terminal with command
Code:
ls -l /bin/sh

output:
Code:
lrwxrwxrwx 1 root root 4 2011-05-07 19:49 /bin/sh -> dash

I didn't change anything, so /bin/sh should default point to dash, maybe there isn't array in dash.
Thanks.
# 4  
/bin/sh on Ubuntu is dash, it is fast, but no-thrills and strictly POSIX compliant shell and therefore it does not know arrays. Arrays should not be used in combination with /bin/sh (on any system), if it does work it is pure happenstance.

Use /bin/bash or /bin/ksh (which is /bin/ksh93) instead..

Last edited by Scrutinizer; 05-18-2012 at 02:29 AM..
# 5  
Quote:
Originally Posted by Scrutinizer
/bin/sh should not be used on any system in combination with /bin/sh, if it does work it is pure happenstance.
What does that means ?
Quote:
... or /bin/ksh (which is /bin/ksh93) instead..
Beware that on Linux, ksh is more commonly pdksh, which doesn't support all arrays features ksh93 and bash provide.
# 6  
LOL, I meant to say arrays.. Corrected in post.
On Ubuntu ksh is the real ksh, and I think on most modern Linux distributions the default ksh has become ksh93.

Last edited by Scrutinizer; 05-18-2012 at 02:46 AM..
This User Gave Thanks to Scrutinizer For This Post:
# 7  
Thanks.
Quite beyond my question. Really learned a lot.
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Science: Mathematics
Difficulty: Medium
The Pythagorean theorem states that the square of the hypotenuse is equal to the product of the squares of the other two sides.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk Associative Array and/or Referring to Field by String (Nonconstant String Value)

I will start with an example of what I'm trying to do and then describe how I am approaching the issue. File PS028,005 Lexeme HRS # M # PhraseType 1(1:1) 7(7) PhraseLab 501 503 ClauseType ZYq0 PS028,005 Lexeme W # L> # BNH # M #... (17 Replies)
Discussion started by: jvoot
17 Replies

2. Shell Programming and Scripting

Pass C shell array to another C shell script(csh) and shell(sh)

Dear Friends, Please help me on this my script name is send.csh In this i have written the statement like this set args = ( city state country price ) I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell or how to pass to... (2 Replies)
Discussion started by: SA_Palani
2 Replies

3. Shell Programming and Scripting

How to Assign an shell array to awk array?

Hello All, Can you please help me with the below. #!/bin/bash ARR="No Differences In Stage Between HASH_TOTALS & HASH_TOTALS_COMP For UNINUM:0722075 PROVIDER:5 EXTRACT_DT:30-SEP-12 VER_NUM:1" ARR="No Differences In Stage Between HASH_TOTALS & HASH_TOTALS_COMP For UNINUM:0722075 PROVIDER:5... (14 Replies)
Discussion started by: Ariean
14 Replies

4. Shell Programming and Scripting

How to use string in array name?

Hi, I'm the beginner in bash scripting and I just want to create loop, which will create a few tables with string in name, and each time i try to do this in the following way, I receive: a=1; while do echo "Plik a=$a" for m in {1..4} do echo "Plik m=$m" ... (7 Replies)
Discussion started by: masterqu
7 Replies

5. Shell Programming and Scripting

split string into array in shell

Hi all, I want to split a string into array based on given delimiter, for example: String: "foo|bar|baz" with delimiter "|" into array: strArr to strArr with values foo, bar and baz. Thanks a lot. Roy987 (5 Replies)
Discussion started by: Roy987
5 Replies

6. Homework & Coursework Questions

passing letters from an array into a string for string comparison

attempting the hangman program. This was an optional assignment from the professor. I have completed the logical coding, debugging now. ##I have an array $wordString that initializes to a string of dashes ##reflecting the number of letters in $theWord ##every time the user enters a (valid)... (5 Replies)
Discussion started by: lotsofideas
5 Replies

7. Shell Programming and Scripting

PERL : Read an array and write to another array with intial string pattern checks

I have an array and two variables as below, I need to check if $datevar is present in $filename. If so, i need to replace $filename with the values in the array. I need the output inside an ARRAY How can this be done. Any help will be appreciated. Thanks in advance. (2 Replies)
Discussion started by: irudayaraj
2 Replies

8. Shell Programming and Scripting

How to hold string array in shell scripts

Gents, Below is the Shell script which I am trying to hold a string of array that is passed from a java file. But it is not working . Can any one please help me to by fixing it. #!/bin/csh/ set copy = ($argv) echo $copy >> /home/users/bavananr/rrr.log echo $copy >>... (3 Replies)
Discussion started by: brajesh
3 Replies

9. UNIX for Dummies Questions & Answers

String Array

I am having a string with the value: str="name1, name2, name3, " I want to traverse the list of elements. How do I loop them? (6 Replies)
Discussion started by: ravikirankethe
6 Replies

10. UNIX for Dummies Questions & Answers

string to array

Hi Experts, I'm new to Shell Scripting world and need a little help from you "Scripting Gurus". I want to convert a string (entered by a user) to array in csh. I want something like this: echo "Enter the Numbers: " set num = $< Suppose, user enters: 1 2 3 4 5 6 7 This... (6 Replies)
Discussion started by: sumitgarg
6 Replies

Featured Tech Videos