Note concerning previous writeup: Unfortunately, if your xargs doesn't have the -i option, you may need to use the -I option. It works slightly differently.

The following is a concise explanation of the most popular usage of xargs. To use it, you will need to have at least watched a person use a unix shell, and it will help to know how to use the for loop and to pipe in bash. Even if you don't, if you've done any amount of programming in the past, you should be able to follow along (though, I am surprised you're reading about xargs at all in such a case.) And without further ado...

~/foo$ ls
Makefile README   TODO
~/foo$ for FILENAME in `ls -1`
> do echo "It's the Filename $FILENAME, that's nice ain't it?"
> done
It's the Filename Makefile, that's nice ain't it?
It's the Filename README, that's nice ain't it?
It's the Filename TODO, that's nice ain't it?
~/foo$ ls -1 | xargs -I FILENAME echo "It's the Filename FILENAME, that's nice ain't it?"
It's the Filename Makefile, that's nice ain't it?
It's the Filename README, that's nice ain't it?
It's the Filename TODO, that's nice ain't it?

I used quotation marks so the shell wouldn't eat my apostrophies, but more importantly to demonstrate that xargs will, like bash, search among and within all arguments for the variable name (which were $FILENAME and FILENAME for my bash and xargs examples, repsectively) provided after the -I option. Also note that the variable name in xargs is, as with bash, case sensitive.

So why should you use xargs instead of bash to accomplish a task like this? Behold the entertaining world of bash character escaping...

~/foo$ touch "Filename Containing Spaces"
~/foo$ ls
Filename Containing Spaces Makefile                   README                     TODO
~/foo$ for FILENAME in `ls -1`
> do echo "It's the Filename $FILENAME, that's nice ain't it?"
> done
It's the Filename Filename, that's nice ain't it?
It's the Filename Containing, that's nice ain't it?
It's the Filename Spaces, that's nice ain't it?
It's the Filename Makefile, that's nice ain't it?
It's the Filename README, that's nice ain't it?
It's the Filename TODO, that's nice ain't it?
~/foo$

As you can see, bash will not handle this the way you wanted. xargs is also capable of using many separator characters such as null characters, and eof characters. Additionally, xargs is less work to use a lot of the time, because you can forego the lengthy for loop and messy. Use xargs!

~/foo$ ls -1 | xargs -I FILENAME echo "It's the Filename FILENAME, that's nice ain't it?"
It's the Filename Filename Containing Spaces, that's nice ain't it?
It's the Filename Makefile, that's nice ain't it?
It's the Filename README, that's nice ain't it?
It's the Filename TODO, that's nice ain't it?
~/foo$