setting environment variables with space


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting setting environment variables with space
# 1  
Old 03-08-2011
setting environment variables with space

Hi,

I'm having problems setting environment variable that has space value. Below is my shell script.
Code:
export LINE=$@
TO=`echo $LINE | awk '{print $1}'`
CC=`echo $LINE | awk '{print $2}'`
BC=`echo $LINE | awk '{print $3}'`
echo "TO=$TO"
echo "CC=$CC"
echo "BC=$BC"
echo "1=$1"
echo "2=$2"
echo "3=$3"

Then the output is:
Code:
$ ksh test2.sh "1" "2.3, 2.6" "3"
TO=1
CC=2.3,
BC=2.6
1=1
2=2.3, 2.6
3=3
$

I'm in a situation where I can't use $1 $2 $3 which is why because in the program that I'm working on, $1/$@ = "1" "2.3, 2.6" "3". I just parse them by doing the following:

Code:
set -- $@
TO=`echo $@ | awk '{print $1}'`
CC=`echo $@ | awk '{print $2}'`
BC=`echo $@ | awk '{print $3}'`

I'd appreciate your help.

Code:
$ uname -a
SunOS server 5.10 Generic_142900-13 sun4u sparc SUNW,SPARC-Enterprise

Edit:

I tried testing using the following:

Code:
$ ksh test2.sh '"1" "2.3, 2.6" "3"'
TO="1"
CC="2.3,
BC=2.6"
1="1" "2.3, 2.6" "3"
2=
3=

I need to get CC to have 2.3, 2.6. How can I do this?

Edit:
The first line was missing in my code. Added
Code:
export LINE=$@

Thanks.

Last edited by adshocker; 03-09-2011 at 01:16 AM..
# 2  
Old 03-08-2011
Why do you need to parse them with set?
Can't you just use $1,$2,$3?

i.e

Inside test2.sh
Code:
TO="$1"
CC="$2"
BC="$3"

# 3  
Old 03-09-2011
Quote:
Originally Posted by anchal_khare
Why do you need to parse them with set?
Can't you just use $1,$2,$3?

i.e

Inside test2.sh
Code:
TO="$1"
CC="$2"
BC="$3"

because $1 would display the whole thing. "1" "2.3, 2.6" "3" as seen in the output in my first post.
# 4  
Old 03-09-2011
Ok..Sorry I didn't see your explanation clearly.
in that case you could change the IFS to '"' then set.

something like..
Code:
IFS='"'
set -- $@
echo "TO=$1"
echo "CC=$2"
echo "BCC=$3"


Alternatively, you could remove the spaces after "," ( if its allowed )

Code:
LINE=$(echo "$@" | sed 's/, /,/g')
set -- $LINE
echo $1
echo $2
echo $3


Last edited by clx; 03-09-2011 at 02:45 AM..
This User Gave Thanks to clx For This Post:
# 5  
Old 03-09-2011
Quote:
Originally Posted by anchal_khare
Ok..Sorry I didn't see your explanation clearly.
in that case you could change the IFS to '"' then set.

something like..
Code:
IFS='"'
set -- $@
echo "TO=$1"
echo "CC=$2"
echo "BCC=$3"

Alternatively, you could remove the spaces after "," ( if its allowed )

Code:
LINE=$(echo "$@" | sed 's/, /,/g')
set -- $LINE
echo $1
echo $2
echo $3

Thank you so much! The later part works for me. Smilie
# 6  
Old 07-28-2011
Hi,

I know this is a bit old thread but I stumbled upon another issue with this. I have basically a similar requirement but this time, I can't remove spaces in between.

Example:
Code:
$ LINE='"ROGERS, STEVE" "27-JUL-2011" "Open" "Now Showing"'
$ echo "$LINE"
"ROGERS, STEVE" "27-JUL-2011" "Open" "Now Showing"
$ IFS='"'
$ set -- $LINE
$ echo $1

$ echo $2
ROGERS, STEVE
$ echo $3

$ echo $4
27-JUL-2011
$ echo $5

$ echo $6
Open
$ echo $7

$ echo $8
Now Showing
$

I noticed that the values do not go to $1 $2 $3 $4 as expected. How do I solve this?

Thanks.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Setting environment variables from a file :

Hi, I have around 10 environment variables in my shell script. i want to set this all in a file and just call that file in my shell script. How can i do that ? Please help. TIA! (6 Replies)
Discussion started by: qwertyu
6 Replies

2. Emergency UNIX and Linux Support

Problem setting environment variables from script

Hi all! I know that environment variables can be set on the .bashrc file, but I need to set them from a sh script. I saw a lot of websites that teach this but it doesn't work for me. #!/bin/sh DEKTOP=$DESKTOP=:/home/rrodrigues/Desktop export DESKTOP if I do echo $DESKTOP returns me... (10 Replies)
Discussion started by: ruben.rodrigues
10 Replies

3. UNIX for Dummies Questions & Answers

Setting up environment variables

Hi all, This is my first post here. I need to set up a few environment variables with a shell script. Some are hard-coded, but some should come from other commands or as input from the user. How do I do that? For example, I need to export a variable as such: export DISPLAY=127.0.0.1:8.0 ... (2 Replies)
Discussion started by: exchequer598
2 Replies

4. UNIX for Dummies Questions & Answers

Setting Environment Variables

#!/bin/bash if ; then ASS1_DATA_DIR=./ echo $ASS1_DATA_DIR export ASS1_DATA_DIR echo "data dir" fi if ; then ASS1_OUTPUT_DIR=./ export ASS1_OUTPUT_DIR fi I want to create a new environment variable ASS1_DATA_DIR and ASS1_OUTPUT_DIR in bash and set them to the current... (4 Replies)
Discussion started by: bigubosu
4 Replies

5. UNIX for Dummies Questions & Answers

Need help with setting up environment variables

hi all, I would appreciate if some one could explain me the difference between setting up the variables as shown below HOME=${HOME:-"/home/user1"} HOME=/home/user1 (1 Reply)
Discussion started by: SSSB
1 Replies

6. Shell Programming and Scripting

Help in Setting Environment variables in TCSH

Hello All, I am writing a script to set some environment variables which are required for a particular application. I understand that the environment variables set by Shell script can, at the max, be valid for the session. They will have to be set again once the session is closed and re-opened.... (1 Reply)
Discussion started by: kssandeep
1 Replies

7. Solaris

Setting environment variables within cron jobs!!

Is it possible to use environment variables within cron jobs. I am using a cron job to run a c program at regular intervals. The C program uses a library and i have set the library path in the LD_LIBRARY_PATH environment variable. But when i ran the job i got the error library not found!! Any... (1 Reply)
Discussion started by: atheek
1 Replies

8. Shell Programming and Scripting

Setting environment variables in Makefile

I've seen a few other threads like this, but they either went unanswered or failed to answer my question. How do I set an environment variable in a Makefile? What I'm trying to do is use GNU make to automate an ant build. In order to run ant, I've got to first set a few environment... (1 Reply)
Discussion started by: Bags
1 Replies

9. Shell Programming and Scripting

Setting up Environment Variables

Hi all, I am trying to set up some variables in a shell script. The variables contain values of various paths needed to run a java module. The problem is the variables dont seem to be setting at all. here is what i am trying to do : JAR_HOME=/home/was5/bdcms/scheduledjobs/lib export... (6 Replies)
Discussion started by: rpandey
6 Replies

10. UNIX for Dummies Questions & Answers

setting environment variables ???

Hello, I want to set some environment variables with this script: ip=$@ echo Remote Computer: $ip PERLDB_OPTS="CallKomodo=$ip:9000 RemotePort=$ip:9010 PrintRet=0" export PERLDB_OPTS PERL5LIB=/opt/komodo export PERL5LIB echo PERLDB_OPTS: $PERLDB_OPTS echo PERL5LIB: $PERL5LIB But it... (5 Replies)
Discussion started by: Gargamel
5 Replies
Login or Register to Ask a Question