Visit The New, Modern Unix Linux Community


Shell string array


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell string array
# 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.

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

Test Your Knowledge in Computers #973
Difficulty: Easy
GCC is the default compiler for the Linux kernel source.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Convert String to an Array using shell scripting in JSON file.

This is the sample json I have pasted here. I want all the IP address strings to be converted into an array. For example "10.38.32.202" has to be converted to everywhere in the JSON. There are multiple IPs in a JSON I am pasting one sample object from the JSON. But the IPs already in an Array... (11 Replies)
Discussion started by: vinshas1
11 Replies

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

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

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

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

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

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

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

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

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