Veuillez considérer ce script simple nommé test :
#!/bin/bash
echo $1
et les commandes et appels suivants:
$ 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
Quelqu'un pourrait-il expliquer pourquoi l'appel de test ne se comporte pas comme l' écho de la commande ou pointer vers la documentation pertinente?
printf '%q\n' "$@"
au lieu de echo
du tout, qui émettra vos arguments un à une avec des caractères cachés et des espaces échappés sous une forme visible.