> echo 0
0
> echo \0
0
[email protected]:~
> echo \\0
[email protected]:~
> echo "\\0"
# <--- What!!?
[email protected]:~
> echo \\\0
[email protected]:~
> echo "\\\0"
\0
[email protected]:~
> bash
Executing .bashrc
$ echo "\0"
\0
$ echo "\\0"
\0
$ echo "\\\0"
\\0
Ich muss sagen, bash Verhalten macht viel mehr Sinn für mich.Warum muss ich "\ 0" eingeben, um eine Zeichenfolge " 0" in zsh zu erstellen?
Weitere Details:
[email protected]:~
> echo "0" | hexdump -C
00000000 30 0a |0.|
00000002
[email protected]:~
> echo "\0" | hexdump -C
00000000 00 0a |..|
00000002
[email protected]:~
> echo "\\0" | hexdump -C
00000000 00 0a |..|
00000002
[email protected]:~
> echo "\\\0" | hexdump -C
00000000 5c 30 0a |\0.|
00000003
[email protected]:~
> echo "\\\\0" | hexdump -C
00000000 5c 30 0a |\0.|
00000003
[email protected]:~
> echo "\\\\\0" | hexdump -C
00000000 5c 00 0a |\..|
00000003
[email protected]:~
> echo "\\\\\\0" | hexdump -C
00000000 5c 00 0a |\..|
00000003
[email protected]:~
> echo "\\\\\\\0" | hexdump -C
00000000 5c 5c 30 0a |\\0.|
00000004
Das größte Problem ist, dass es keinen Wert, um das gewünschte Ergebnis \0
sowohl bash und zsh produziert.
Update:
[email protected]:~
> echo '0' | hexdump -C
00000000 30 0a |0.|
00000002
[email protected]:~
> echo '\' | hexdump -C
00000000 5c 0a |\.|
00000002
[email protected]:~
> echo '\\' | hexdump -C
00000000 5c 0a |\.|
00000002
[email protected]:~
> echo \\ | hexdump -C
00000000 5c 0a |\.|
00000002
[email protected]:~
> echo '\\0' | hexdump -C
00000000 5c 30 0a |\0.|
00000003
Sieht aus wie einfache Anführungszeichen verwenden hilft konsistentes Verhalten zu bekommen. Ich würde es lieben, wenn jemand das Verhalten mit den Anführungszeichen erklärt.
was ergibt echo "\\"? Auch einfache Anführungszeichen sind einen Versuch wert: echo '\ 0' – catholicon