Re: alias expansion with functions in non-interactive mode
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
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