speefak hat geschrieben: 18.11.2018 20:02:33
Gibt es da eine Möglichkeit das mal allgemeingültig in den Kopf zu bekommen.
man bash lesen.
Über den Daumen ist Folgendes.
Zwischen " wird $ aufgelöst. Zwischen ' nicht.
Bei Parametern hinter einem Befehl wird zusammengehalten, was zwischen " steht. $foo mit Leerzeichen drin und ohne " drumrum wird zu mehreren Parametern.
Bei Zuweisung foo=$bar wird alles im $bar zugewiesen, auch wenn Leerzeichen drin sind.
Bei Arrays hat @ statt * zur Folge, dass die Einzelteile wie mit " drumrum behandelt werden. Als Parameter hinter einem Befehl "${foo[@]}", "$foo[*]" oder ${foo[@]} ist, wenn Leerzeichen drin sind, unterschiedlich.
Drüber nachdenken, und man bash lesen! Steht alles drin.
Leider trampele ich gewöhnlich erst in eine Falle, lese dann nochmal bei man bash nach, und stelle dann fest, dass ich beim letzten Lesen nicht verstanden hatte, worum es geht, und dass genau das drin steht, was Bash tut.