Bash scripting -- Usage of arrays
Wesley Shields
wxs at csh.rit.edu
Tue Nov 29 21:31:36 GMT 2005
On Wed, Nov 30, 2005 at 02:39:15AM +0530, Jayesh Jayan wrote:
> Hi,
>
> Today I was trying to script using arrays in FreeBSD 5.4 but it doesn't
> work.
>
> Below is a sample script which I used.
>
> ******************************************************
>
> #!/bin/bash
>
> array=( zero one two three four);
> echo "Elements in array0: ${array[@]}"
>
> ******************************************************
>
> It works fine on RedHat server.
>
> Below is the output.
>
> # sh array.sh
> Elements in array0: zero one two three four
>
> Below is the out put from the FreeBSD server using the same code.
>
> -bash-2.05b# sh aa.sh
> aa.sh: 3: Syntax error: word unexpected (expecting ")")
>
> Please guide me on how to use arrays on freebsd too.
Bash (installed via ports) is in /usr/local/bin. Change the first line
to be #!/usr/local/bin/bash and chmod 750 (at least) the script. This
way you can just ./aa.sh and be done.
If you prefer to run it as you have shown above don't run sh aa.sh,
instead do bash aa.sh, assuming bash is in your path. sh aa.sh will try
and run the script through sh (which is not bash).
wxs at syn ~ > ls -la foo.sh
-rwxr-xr-x 1 wxs wxs 97 Nov 29 16:26 foo.sh*
wxs at syn ~ > cat foo.sh
#!/usr/local/bin/bash
array=( zero one two three four);
echo "Elements in array0: ${array[@]}"
wxs at syn ~ > bash ./foo.sh
Elements in array0: zero one two three four
wxs at syn ~ > ./foo.sh
Elements in array0: zero one two three four
wxs at syn ~ > sh ./foo.sh
./foo.sh: 3: Syntax error: word unexpected (expecting ")")
wxs at syn ~ >
-- WXS
More information about the freebsd-questions
mailing list