Sponsored Content
Full Discussion: Array with String Elements
Top Forums Shell Programming and Scripting Array with String Elements Post 302384319 by alister on Monday 4th of January 2010 09:48:38 PM
Old 01-04-2010
If I understood your situation correctly, I believe the solution is to use eval to pass the result of the command substitution though the shell's parser.

I'm using an old version of bash which does not support "set -A", so I'm using positional parameters instead of an array variable to try and explain myself. The principles involved are identical. Hopefully, I am able to get my point across Smilie

Code:
$cat eval.sh
# The goal is to assign the value of $first to $1
# and the value of $second to $2.

first='$second'  second='boo far'

# 1)
# This first example exhibits the problem you are
# experiencing.  The quotes intended to delimit the
# string are taken as part of the string itself,
# since command substitution occurs after the parsing
# step which cares about quoting.

set -- `echo \"$first\" \"$second\"`
echo "First positional parameter: $1"
echo "Second positional parameter: $2"

# Outputs:
# First positional parameter: "$second"
# Second positional parameter: "boo

# -----------------------------------------

# 2)
# Adding eval passes the result from command substitution
# through the parser, and the quotes are indeed interpreted
# as you'd like.  However, with weak double quotes, if
# there is anything in the substituted text that would
# cause the shell to attempt parameter/command substitution,
# the output will be undesirably affected. In this case, the
# value of $first, the string "$second", is taken as a parameter
# which is then substituted, resulting in the value of $1 
# being identical to that of $2.

eval set -- `echo \"$first\" \"$second\"`
echo "First positional parameter: $1"
echo "Second positional parameter: $2"

# Outputs:
# First positional parameter: boo far
# Second positional parameter: boo far

# -----------------------------------------

# 3)
# The correct solution is wrap the command substituted values
# in strong quotes, to ensure that they are taken literally and
# not word split when passed through the parser a second time.

eval set -- `echo \'$first\' \'$second\'`
echo "First positional parameter: $1"
echo "Second positional parameter: $2"

# Finally, the correct output:
# First positional parameter: $second
# Second positional parameter: boo far

Hope this helped,
alister

Last edited by alister; 01-04-2010 at 10:52 PM.. Reason: typos
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

To return the elements of array

Hi, Please can someone help to return the array elements from a function. Currently the problem I face is that tempValue stores the value in myValue as a string while I need an array of values to be returned instead of string. Many Thanks, Sudhakar the function called is: ... (5 Replies)
Discussion started by: Sudhakar333
5 Replies

2. Shell Programming and Scripting

Search array elements as file for a matching string

I would like to find a list of files in a directory less than 2 days old and put them into an array variable. And then search for each file in the array for a matching string say "Return-code= 0". If it matches, then display the array element with a message as "OK". Your help will be greatly... (1 Reply)
Discussion started by: mkbaral
1 Replies

3. Shell Programming and Scripting

Accessing array elements

Hi, My doubt is how to access array elements.. Situation is as below: #!/bin/ksh set -x typeset -i x=0 typeset -i y=0 typeset -i BID=0 typeset -i count=0 while ] ; do x=`expr $x + 1`; hwmgr show scsi > scsi.tmp while read line; do set... (1 Reply)
Discussion started by: mansa
1 Replies

4. UNIX for Dummies Questions & Answers

printing array elements

Is there a way to print multiple array elements without iterating through the array using bash? Can you do something like... echo ${array}and get all those separate elements from the array? (2 Replies)
Discussion started by: jrymer
2 Replies

5. Shell Programming and Scripting

Removing elements from an array

Hi I have two arrays : @arcb= (450,625,720,645); @arca=(625,645); I need to remove the elements of @arca from elements of @arcb so that the content of @arcb will be (450,720). Can anyone sugget me how to perform this operation? The code I have used is this : my @arcb=... (3 Replies)
Discussion started by: rkrish
3 Replies

6. Shell Programming and Scripting

Grouping array elements - possible?

I have a script which takes backup of some configuration files on my server. It does that by using an array which contains the complete path to the files to backup. It copys the files to a pre defined dir. Each "program" has it's own folder, ex. apache.conf is being copied to /predefined... (7 Replies)
Discussion started by: dnn
7 Replies

7. Shell Programming and Scripting

Multiplication of array elements

Hi, I can't find out how to create correct code to get multiplication of each elements of array. Let's say I enter array into command line (2 3 4 5 6 8) and i need output 2*3*4*5*6*8=5760. I tried this one, but answer is 0. for i in $@; do mult=$((mult*i))done echo "mult: " $mult ... (4 Replies)
Discussion started by: rimasbimas
4 Replies

8. Shell Programming and Scripting

Random elements from array

Hi I wanted to print random elements from an array at bash shell I use the following code, but I always see first element getting printed #!/bin/bash c=1 expressions=(pink red white yellow purple) while ]; do echo "The value of RANDOM is $RANDOM" selectedexpression=${expressions}]};... (5 Replies)
Discussion started by: Priya Amaresh
5 Replies

9. Shell Programming and Scripting

Help reading the array and sum of the array elements

Hi All, need help with reading the array and sum of the array elements. given an array of integers of size N . You need to print the sum of the elements in the array, keeping in mind that some of those integers may be quite large. Input Format The first line of the input consists of an... (1 Reply)
Discussion started by: nishantrefound
1 Replies

10. Shell Programming and Scripting

Get unique elements from Array

I have an array code and output is below: echo $1 while read -r fline; do echo "%%%%%%$fline%%%%%" fmy_array+=("$fline") done <<< "$1" Output: CR30903 YU0007 SRIL CR30903 Yogesh SRIL %%%%%%CR30903 YU0007 SRIL%%%%% %%%%%%CR30903 Yogesh SRIL%%%%% ... (8 Replies)
Discussion started by: mohtashims
8 Replies
BESSEL(3)						User Contributed Perl Documentation						 BESSEL(3)

NAME
PDL::GSLSF::BESSEL - PDL interface to GSL Special Functions DESCRIPTION
This is an interface to the Special Function package present in the GNU Scientific Library. SYNOPSIS
Functions FUNCTIONS
gsl_sf_bessel_Jn Signature: (double x(); double [o]y(); double [o]e(); int n) Regular Bessel Function J_n(x). gsl_sf_bessel_J_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Regular Bessel Functions J_{s}(x) to J_{s+n-1}(x). gsl_sf_bessel_Yn Signature: (double x(); double [o]y(); double [o]e(); int n) IrRegular Bessel Function Y_n(x). gsl_sf_bessel_Y_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Regular Bessel Functions Y_{s}(x) to Y_{s+n-1}(x). gsl_sf_bessel_In Signature: (double x(); double [o]y(); double [o]e(); int n) Regular Modified Bessel Function I_n(x). gsl_sf_bessel_I_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Regular Modified Bessel Functions I_{s}(x) to I_{s+n-1}(x). gsl_sf_bessel_In_scaled Signature: (double x(); double [o]y(); double [o]e(); int n) Scaled Regular Modified Bessel Function exp(-|x|) I_n(x). gsl_sf_bessel_I_scaled_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Scaled Regular Modified Bessel Functions exp(-|x|) I_{s}(x) to exp(-|x|) I_{s+n-1}(x). gsl_sf_bessel_Kn Signature: (double x(); double [o]y(); double [o]e(); int n) IrRegular Modified Bessel Function K_n(x). gsl_sf_bessel_K_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of IrRegular Modified Bessel Functions K_{s}(x) to K_{s+n-1}(x). gsl_sf_bessel_Kn_scaled Signature: (double x(); double [o]y(); double [o]e(); int n) Scaled IrRegular Modified Bessel Function exp(-|x|) K_n(x). gsl_sf_bessel_K_scaled_array Signature: (double x(); double [o]y(num); int s; int n=>num) Array of Scaled IrRegular Modified Bessel Functions exp(-|x|) K_{s}(x) to exp(-|x|) K_{s+n-1}(x). gsl_sf_bessel_jl Signature: (double x(); double [o]y(); double [o]e(); int n) Regular Sphericl Bessel Function J_n(x). gsl_sf_bessel_j_array Signature: (double x(); double [o]y(num); int n=>num) Array of Spherical Regular Bessel Functions J_{0}(x) to J_{n-1}(x). gsl_sf_bessel_yl Signature: (double x(); double [o]y(); double [o]e(); int n) IrRegular Spherical Bessel Function y_n(x). gsl_sf_bessel_y_array Signature: (double x(); double [o]y(num); int n=>num) Array of Regular Spherical Bessel Functions y_{0}(x) to y_{n-1}(x). gsl_sf_bessel_il_scaled Signature: (double x(); double [o]y(); double [o]e(); int n) Scaled Regular Modified Spherical Bessel Function exp(-|x|) i_n(x). gsl_sf_bessel_i_scaled_array Signature: (double x(); double [o]y(num); int n=>num) Array of Scaled Regular Modified Spherical Bessel Functions exp(-|x|) i_{0}(x) to exp(-|x|) i_{n-1}(x). gsl_sf_bessel_kl_scaled Signature: (double x(); double [o]y(); double [o]e(); int n) Scaled IrRegular Modified Spherical Bessel Function exp(-|x|) k_n(x). gsl_sf_bessel_k_scaled_array Signature: (double x(); double [o]y(num); int n=>num) Array of Scaled IrRegular Modified Spherical Bessel Functions exp(-|x|) k_{s}(x) to exp(-|x|) k_{s+n-1}(x). gsl_sf_bessel_Jnu Signature: (double x(); double [o]y(); double [o]e(); double n) Regular Cylindrical Bessel Function J_nu(x). gsl_sf_bessel_Ynu Signature: (double x(); double [o]y(); double [o]e(); double n) IrRegular Cylindrical Bessel Function J_nu(x). gsl_sf_bessel_Inu_scaled Signature: (double x(); double [o]y(); double [o]e(); double n) Scaled Modified Cylindrical Bessel Function exp(-|x|) I_nu(x). gsl_sf_bessel_Inu Signature: (double x(); double [o]y(); double [o]e(); double n) Modified Cylindrical Bessel Function I_nu(x). gsl_sf_bessel_Knu_scaled Signature: (double x(); double [o]y(); double [o]e(); double n) Scaled Modified Cylindrical Bessel Function exp(-|x|) K_nu(x). gsl_sf_bessel_Knu Signature: (double x(); double [o]y(); double [o]e(); double n) Modified Cylindrical Bessel Function K_nu(x). gsl_sf_bessel_lnKnu Signature: (double x(); double [o]y(); double [o]e(); double n) Logarithm of Modified Cylindrical Bessel Function K_nu(x). AUTHOR
This file copyright (C) 1999 Christian Pellegrin <chri@infis.univ.trieste.it> All rights reserved. There is no warranty. You are allowed to redistribute this software / documentation under certain conditions. For details, see the file COPYING in the PDL distribution. If this file is separated from the PDL distribution, the copyright notice should be included in the file. The GSL SF modules were written by G. Jungman. perl v5.8.0 2003-01-29 BESSEL(3)
All times are GMT -4. The time now is 11:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy