Nel trattino, le funzioni e le variabili sembrano vivere in spazi dei nomi separati:
fn(){
fn="hello world"
}
fn; echo "The value is $fn!" #prints: The value is hello world!
fn; echo "The value is $fn!" #prints: The value is hello world!
#the fn variable doesn't conflict with the fn function
È una caratteristica specifica del trattino o una garanzia POSIX?
fn
funzione si trova in uno spazio dei nomi separato; se eseguirlo una volta avesse cancellato la sua definizione, avremmo visto esattamente lo stesso comportamento. Dovresti mostrare che la funzione è ancora definita, ad es. Contype fn
dopo.