Im Bindestrich scheinen Funktionen und Variablen in separaten Namespaces zu leben:
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
Handelt es sich um eine dash-spezifische Funktion oder eine POSIX-Garantie?
fn
Funktion in einem separaten Namespace befindet. Wenn die einmalige Ausführung die Definition gelöscht hätte, würden wir genau dasselbe Verhalten feststellen. Sie sollten zeigen, dass die Funktion noch definiert ist, zB mittype fn
danach.