Hey guys,

Just trying to do a simple shell script to generate a query line... can someone tell me why this does not work?

for e in `cat file.txt`; do echo INSERT INTO \`omstest_omstest\`.\`GEN2_FIELD\` VALUES \(NULL, \'$e\', \'$e\', \'4\', \'2009-10-05 00:00:00\', \'0\' \'0\'\)\;; done;

if you take out the $ before each of the e's, I get exactly what I am looking for... except of course there is an e where I want the variable to be.

What shell are you using, and what error are you receiving?

It seems to work for me:

sk@svn:/tmp$ for e in `cat file.txt`; do echo INSERT INTO \`omstest_omstest\`.\`GEN2_FIELD\` VALUES \(NULL, \'$e\', \'$e\', \'4\', \'2009-10-05 00:00:00\', \'0\' \'0\'\)\;; done;
INSERT INTO `omstest_omstest`.`GEN2_FIELD` VALUES (NULL, 'ABC', 'ABC', '4', '2009-10-05 00:00:00', '0' '0');

Some shells do not like to evaluate $vars unless they are in a " , not a single ' .

I'm using bash... No errors... but the moment I put a $var in place of the two e's, my output gets all jumbled up... and only the last line of the file prints correctly... it is almost like it is reading a new line that is not there... or at least that I am not seeing.

What shell did you use? Did you try it with more than one line in the test file?

rofl... ha ha I'm a newb. The problem was with the text file not the commands. Should have been the first thing I checked :(

Thanks everyone who tried to help.

I'm glad you got it working ;)

Please mark this thread as solve as you have found your solution to the issue and good luck!

This article has been dead for over six months. Start a new discussion instead.