Odd Behaviour for Set and IFS variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Odd Behaviour for Set and IFS variable
# 1  
Old 08-19-2015
Odd Behaviour for Set and IFS variable

Ok, so I'm playing around with delimters and reading files. and I came across this behaviour that I thought was a bit odd, regarding how the set command takes values... If I run this: IFS=$'-' #Assigns the - as the default delimiter for bash set I-love-my-gf-a-lot #uses set to put a bunch of text into memory. separated by the - echo $1 I love my gf a lot # this is the output when doing echo $1 echo $2 # I get no output. Nothing was assigned to it. Same goes for $3, $4, or $5... The entire line, (minus the dashes) was put into $1. But when I assign the same exact line to a variable like this: cheesy_line="I-love-my-gf-a-lot" set $cheesy_line echo $1 I echo $3 my echo $5 a etc... Why is this? Shouldn't pasing the full line to set be the same thing as setting it as a variable and then passing it to set? Why does the output stay on one line and placed into one variable ($1) with the first method? But when I assign it to a variable, and then pass it to set, does it break it up into the different $1, $2, $3, etc..?
Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules. The way you have written the above, we cannot tell what is supposed to be the text in your script from text describing how the script is, or is not, working as desired.

Last edited by Don Cragun; 08-19-2015 at 09:37 PM..
# 2  
Old 08-19-2015
Please show us your entire script, the command line(s) you're using to invoke it, and the output you're getting (all using CODE tags). I would guess that quoting is causing you problems, but without seeing exactly what you're doing, I'm only guessing.
This User Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Odd behaviour with Expect password update script

Hi there. I've been forced by circumstance to write an expect script to handle password updates on a number of servers. There's a mix of Solaris 8, 9, 10, RedHat and Ubuntu. There's no chance the client will allow us to hook them up to a directory, so we have to make do. This script is mostly... (0 Replies)
Discussion started by: whetu
0 Replies

2. UNIX for Dummies Questions & Answers

How to Separate Odd and Even number from one data set?

Hi, If I want to separate data set to new file by odd and even number. If data set like this 1 ABC 235 hgf 2 DEF 326 kjk 3 XXX 133 kwd 4 YYY 188 fgh If I want separate by colum3 I want result like set 1 1 ABC 235 hgf 3 XXX 133 kwd put to new... (3 Replies)
Discussion started by: GeodusT
3 Replies

3. Solaris

odd behaviour of app writes to mirrored volumes

Hi, Normally, I setup my volumes under Solaris (doesnt matter, 8 or 10), as vxassist -g dg01 -U gen make vol01 500m dg0101, then I do a mirror vxassist -g dg01 mirror vol01 dg0102. Which is legal and does work, however, when the primary dg01 array (or simply in this case, the volume)... (2 Replies)
Discussion started by: mrmurdock
2 Replies

4. Shell Programming and Scripting

How to set IFS for a specific command

Hi there, I'm using two commands that need different IFS. The mysql command need IFS to include space because I'm given the mysql command as a variable: supernova:~# cat myscript IFS=' ' MYSQL="mysql -u user -ppassword database" $MYSQL -Ne "SELECT COUNT(1), MAX(id), MAX(name) FROM terminal"... (7 Replies)
Discussion started by: chebarbudo
7 Replies

5. Shell Programming and Scripting

resetting IFS variable

Hi, I have modified the IFS variable in the K shell program and with in the program i want to reset to the default one. How do i reset the same. e.g in the begining of the program IFS is default in the middle i changed it to IFS="|" and again i want the default value for the IFS. ... (2 Replies)
Discussion started by: vijaykrc
2 Replies

6. Shell Programming and Scripting

Confusion about IFS Variable

================================================= #!/bin/sh HOST=eux091 if && grep -q $HOST /etc/maestab then IFS=: grep -v -e "^#" -e "^$" /etc/maestab | grep $HOST | \ read HOST MAESTRO_BIN FLAG MAESTRO_USER echo $MAESTRO_BIN MAESTRO_HOME=`dirname $MAESTRO_BIN`... (7 Replies)
Discussion started by: Awadhesh
7 Replies

7. Shell Programming and Scripting

odd behaviour with quoted input strings

I'm working with a java-based monitoring tool (Solaris/x86) which can be configured to call a shell script when a particular event occurs. The java app sends a set of quoted strings as input to the shell script. The problem I'm running into is that the shell script, when called by the java app,... (0 Replies)
Discussion started by: iron_horse
0 Replies

8. UNIX for Dummies Questions & Answers

IFS variable

How can I set the value for IFS variable (2 Replies)
Discussion started by: mahabunta
2 Replies

9. UNIX for Dummies Questions & Answers

the IFS variable

Hi all, Ok os heres my situation. I have created a database style program that stores a persons info (name,address,phone number etc.) in a file ("database"). after i read in all the values above, i assign them to a line variable: line="$name^$address^$phonenum" >> phonebuk as you can see... (1 Reply)
Discussion started by: djt0506
1 Replies

10. Shell Programming and Scripting

IFS changing the variable value

Hi, I have a while read loop that reads files in a directory and process. The files have spaces in between, so I have the IFS=\n to to read the whole line as one file name. The read works fine but I have a problem with another variable that I set in the beginning of the script. The variable... (1 Reply)
Discussion started by: pvar
1 Replies
Login or Register to Ask a Question