Dal manuale di bash
Le regole relative alla definizione e all'uso degli alias sono alquanto confuse. Bash legge sempre almeno una riga di input completa prima di eseguire qualsiasi comando su quella riga. Gli alias vengono espansi quando viene letto un comando, non quando viene eseguito. Pertanto, una definizione di alias che appare sulla stessa riga di un altro comando non ha effetto fino a quando non viene letta la riga successiva di input. I comandi che seguono la definizione di alias su quella riga non sono interessati dal nuovo alias. Questo comportamento è anche un problema quando vengono eseguite le funzioni. Gli alias vengono espansi quando viene letta una definizione di funzione, non quando viene eseguita la funzione , poiché una definizione di funzione è essa stessa un comando composto. Come conseguenza, gli alias definiti in una funzione non sono disponibili fino a quando non viene eseguita quella funzione . Per sicurezza, posiziona sempre le definizioni di alias su una riga separata e non utilizzare l'alias nei comandi composti.
Le due frasi "Gli alias vengono espansi quando viene letta una definizione di funzione, non quando viene eseguita la funzione" e "gli alias definiti in una funzione non sono disponibili fino a quando non viene eseguita quella funzione" sembrano essere in contrasto tra loro.
Puoi spiegare cosa significano rispettivamente?
.bashrc
file nella parte superiore.