Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Aug 2007 19:57:33 +0400 (GST)
From:      Rakhesh Sasidharan <rakhesh@rakhesh.com>
To:        freebsd-questions@freebsd.org
Subject:   Question on the IFS variable (not a FreeBSD question)
Message-ID:  <20070812195535.V86618@obelix.home.rakhesh.com>

next in thread | raw e-mail | index | archive | help

Hi,

This isn't really a FreeBSD question. But I figure most people on this list 
would know the answer and so I'm asking. I've tried to get the answer out of 
Google, but I guess I am not asking it the right question and so not 
getting much hits.

I understand that the default value of the IFS variable in bash is "space, tab, 
newline". For a script I am playing around with, I want to change IFS to be 
just newline. I tried the obvious like

IFS="\n"
-or-
IFS='\n'

but that doesn't seem to do the trick coz then the letter "n" ends up being the 
separator.

A bit of Google searching got me the solution too. That I must set IFS this 
way:

IFS=$'\n'

I did that, and sure enough things work the way I want!

So my question is this: how come things work when I set IFS to $'\n' instead of 
just plain '\n'? I don't recollect seeing such a way of setting variables 
before, and so I'm curious about it.

TIA,
Rakhesh



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070812195535.V86618>