Der typische Fall ist IFS= read
.
Das Thema wird in diesem Thread sehr gut erklärt:
Warum ist das Setzen einer Variablen vor einem Befehl in bash legal?
Um ein vollständiges Bild zu erhalten, wäre ich Ihnen sehr dankbar, wenn Sie erklären könnten, warum das folgende Skript nicht wie erwartet funktioniert.
my_script
::
#!/bin/bash
echo "$var1"
echo -n "$IFS" | xxd -p
echo "$var2"
exit 0
Aufruf my_script
:
var1=foo IFS= var2=bar my_script
Ausgabe:
foo
20090a
bar
Wie Sie sehen können, IFS
ist unverändert, immer noch als Standard festgelegt.
Wie kommt read
der Brauch, IFS
wenn er als aufgerufen wird IFS= read
?
Vielen Dank im Voraus