Warum wird der Backslash in der Echo-Anweisung in ein Leerzeichen umgewandelt, wenn IFS='\'?

Warum wird der Backslash in der Echo-Anweisung in ein Leerzeichen umgewandelt, wenn IFS='\'?

Warum wird es \beim Einstellen in Leerzeichen umgewandelt?IFS='\'

var="'(]\\{}\$\""
IFS='\'
echo $var # '(] {}$" 

Antwort1

Denn das ist es, wasIFStut. Es ist das Eingabefeldtrennzeichen. Bash trennt nicht in Anführungszeichen gesetzte Zeichenfolgen an diesem Zeichen und Sie haben es wie folgt eingestellt \:

$ var="fooAbar"
$ IFS='A'
$ echo $var
foo bar
$ echo "$var"
fooAbar

verwandte Informationen