BASH alias not working...

Matthew S-H mathbymath at aol.com
Tue Jun 21 00:14:41 UTC 2005


On Jun 20, 2005, at 7:57 PM, Colin Watson wrote:
> On Mon, Jun 20, 2005 at 07:43:24PM -0400, Matthew S-H wrote:
>> This is the code I added to my "~/.bashrc":
>> ---START---
>> alias "choose_to_edit"="cat /dev/null &&
>>      cd ~/Documents/ &&
>>      command ls | grep -n -v 'randomcraptonotmatch' | column &&
>>      echo 'Choose which one to edit:' &&
>>      read &&
>>      if test $REPLY -eq 1 ;
>>       then cat /dev/null &&
>>         echo 'test';
>>      fi"
>> ---END---
>> Before I continued any further with this script, I wanted to test to
>> see if that worked.  However, it didn't...
>> It gives we the following error:
>> -bash: test: -eq: unary operator expected
> You should quote "$REPLY" thus so that it expands to an empty word
> rather than disappearing altogether if it's empty. You should probably
> also use = rather than -eq so that test does string matching and
> therefore doesn't complain about non-numeric arguments.

This didn't do it.  This compared the string "$REPLY" to 1.
When it executes "read", it gets a line of input from the user and  
places it in the environment variable "$REPLY".
The "if test $REPLY -eq 1 ;" should compare this variable to the  
number 1.

A revised version of my code:
---START---
alias "choose_to_edit"="cat /dev/null &&
      cd ~/Documents/   &&
      command ls | grep -n -v 'randomcraptonotmatch' | column &&
      echo 'Choose which one to edit:' &&
      read &&
      if test '$REPLY' = 1 ;
       then cat /dev/null &&
         echo 'test';
      fi"
---END---


Thanks again,
~Matt




More information about the ubuntu-users mailing list