Re: alias expansion with functions in non-interactive mode

2008-05-31 Thread Andreas Schwab
Marco <[EMAIL PROTECTED]> writes:

>: cat test.sh
>#!/bin/bash
>function foo
>{
>shopt -s expand_aliases
>alias ls='ls -l'
>ls /
>}

>From the manual:
   Aliases are expanded when a function definition is read, not when the
   function is executed, because a function definition is itself a
   compound command.

Andreas.

-- 
Andreas Schwab, SuSE Labs, [EMAIL PROTECTED]
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."




Re: alias expansion with functions in non-interactive mode

2008-05-31 Thread Paul Jarc
Marco <[EMAIL PROTECTED]> wrote:
>I couldn't find any information on it, but I'm noticing alias expansion
>is not happening in non-interactive mode within a function with
>expanded_aliases turned on.  Is this a know problem, or am I missing
>something? 
> 

Alias expansion happens when a command is read, not when it is
executed.  So in this case, it happens when the function is defined,
which means you would need to define the alias and have expand_aliases
turned on before the function definition:

alias ls='ls -l'
shopt -s expand_aliases
function foo
{
ls /
}


paul