[SOLVED] Bash script problem "No such file or directory"
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
You have a redirection and a pipe there,
so you actually need to do
Code:
eval "$STR"
Being new to scripting I was curious why this is. So I did some googling and found this nice clear explanation that variable expansion occurs after output redirecton: http://linuxdevcenter.com/pub/a/linux/lpt/08_10.html
Quote:
Do you see what's happening? We're constructing a command that will look something like:
grep $grepopts $searchstring $file | sort $sortopts > $ofile
But the entire command is "hidden" in shell variables, including the I/O redirectors and various options. If the eval isn't there, this command will blow up in all sorts of bizarre ways. You'll see messages like | not found, because variable expansion occurs after output redirection. The "nested" variables (like $ofile, which is used inside of $output) won't be expanded either, so you'll also see $ofile not found. Putting an eval in front of the command forces the shell to process the line again, guaranteeing that the variables will be expanded properly and that I/O redirection will take place.
But thats your call. I just prefer to have less script to look at. Less is more.
Good luck and Regards.
You're absolutely right. That does work and is certainly more compact and also more transparent - which I certainly think is a good thing in a script. I didn't know about zcat before - pipe built in is cool.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.