Bitte beachten Sie dieses einfache Skript mit dem Namen test :
#!/bin/bash
echo $1
und die folgenden Befehle und Aufrufe:
$ echo "A B"
A B
$ echo ""A B""
A B
$ echo """A B"""
A B
$ echo """A B"""
A B
$ ./test "A B"
A B
$ ./test ""A B""
A
$ ./test """A B"""
A B
$ ./test """"A B""""
A
Könnte jemand bitte , warum der Anruf von erklären Test doens't verhalten sich wie der Befehl echo oder Punkt auf der entsprechenden Dokumentation?
printf '%q\n' "$@"
statt echo
überhaupt zu verwenden, wodurch Ihre Argumente einzeln mit versteckten Zeichen und Leerzeichen in sichtbarer Form ausgegeben werden.