Ich teste die folgende Bash-Datei test.sh. Aber wie erklärt man die Ausgabe? Manchmal würde ich mich erinnern, String-Variablen zu zitieren bedeutet, Whitespace in einer einzelnen Variable zu erhalten, aber wie man es versteht, anstatt es zu merken.So verstehen Sie, Variablen tief zu zitieren
list="one two three"
for a in $list
do
echo "$a"
done
for a in "$list"
do
echo "$a"
done
Ausgang:
ein
zwei
drei
eins zwei drei
doppelt zitiert verhindert ** Wort spalt **. Der Standardwert ** Internal Field Separator (IFS) ** ist '$ '\ t \ n'' (' Leerzeichen', 'Tab',' Newline') steuert, wie nicht angekreuzte Strings durch die Shell geteilt werden. (was ** Wortteilung ** genannt wird). Das bedeutet, dass ein nicht angekreuzter String bei jedem Auftreten eines Zeichens in 'IFS' durch die Shell geteilt wird. Double-Quoting verhindert *** Wortteilung ***. –