[sf-lug] regular expression question
sean.channel at pacbell.net
Fri Jun 8 14:04:42 PDT 2012
You do need a function to process positional arguments in bash, as you have
found out like me the hard way.
bash evaluates the meaning of $1 and other variables at the time the alias is
defined, not when called later. Arguments you pass to an alias are simply
appended to the command, so
w3m -dump -T text/html 'https://encrypted.google.com/search?q=' gasoline
..which yields only the aforementioned one-line and google search page. Defining
this as a function worked fine;
w3m -dump -T text/html https://encrypted.google.com/search?q="$*"
On 06/08/2012 01:17 PM, James Sundquist wrote:
> So, I wrote some aliases that rely on user input that work just fine.
> alias h='history | grep $1"
> I tried doing the same thing for conducting quick google searches with the w3m
> pager, which can be used to browse text/html on the internet and is included on
> Ubuntu Server.
> $ w3m -dump -T text/html https://encrypted.google.com/search?q=news
> This will output the results of searching the term "news" on google's search
> to the display. Works like a charm
> alias w3mtest='w3m -dump -T text/html https://encrypted.google.com/search?q="$1"'
> I add this alias to bashrc and execute it with the argument "news" and bash
> will not successfully interpret the input. It outputs the Google search page
> and an additional line reading 'w3m: Can't load news'
> I've written this as a function and it works perfectly. What is stopping this
> from working as an alias? I'd love to get a fresh perspective. I've gotten
> this concept to work in elinks by creating a bookmark for google search (g) and
> simply adding my search terms to the end of it.
> sf-lug mailing list
> sf-lug at linuxmafia.com
> Information about SF-LUG is at http://www.sf-lug.org/
More information about the sf-lug