Marc_BlackJack_Rintsch schrieb:
@Umaash: Wie der Inhalt einer Shell-Variablen intern gespeichert wird, geht Dich als Programmierer nichts an. Das ist ein Implementierungsdetail. Bei der Ein- oder Ausgabe von den Daten findet immer eine Umwandlung von der/in die interne Darstellung statt. Und nur diese externe Darstellung kann man beispielsweise mit xxd
untersuchen. Üblich ist UTF-8 als externe Darstellung.
Aber wie kann ich jetzt herausfinden, ob in der Variable $block_to_delete auch "EOF" gespeichert wird oder nicht?:
$ block_to_delete=$(cat <<EOF
> whitelist \${HOME}/.zoom
> include whitelist-common.inc
> fdfghghh
> caps.drop all
> EOF
> )
Ich möchte wissen, ob in $block_to_delete die Zeilenumbrüche gespeichert sind und ob die "EOF" gespeichert sind. Ich nehme mal an "EOF" entspricht auch irgend einem ASCI Code.
Der Befehl ...
$ xxd -g1 <<< "$block_to_delete"
00000000: 77 68 69 74 65 6c 69 73 74 20 24 7b 48 4f 4d 45 whitelist ${HOME
00000010: 7d 2f 2e 7a 6f 6f 6d 0a 69 6e 63 6c 75 64 65 20 }/.zoom.include
00000020: 77 68 69 74 65 6c 69 73 74 2d 63 6f 6d 6d 6f 6e whitelist-common
00000030: 2e 69 6e 63 0a 66 64 66 67 68 67 68 68 0a 63 61 .inc.fdfghghh.ca
00000040: 70 73 2e 64 72 6f 70 20 61 6c 6c 0a ps.drop all.
... sagt, es seien keine "EOF"-Zeichen gespeichert. Aber kann ich jetzt der Ausgabe des Befehls xxd trauen? Du sagst ja, es wird immer alles umgearbeitet und nichts wird so angezeigt wie es drin ist. Unterschlägt jetzt vielleicht xxd die "EOF" Zeichen? Oder sind sie wirklich nicht in der Variable?