Considere este script simple llamado prueba :
#!/bin/bash
echo $1
y los siguientes comandos y llamadas:
$ 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
¿Podría alguien explicar por qué la llamada de prueba no se comporta como el comando echo o apunta a la documentación relevante?
2
Ya hay un comando de prueba , tienes suerte de que estuvieras usando la ruta completa, de lo contrario habrías tenido dificultades para depurar la situación.
—
Rui F Ribeiro
Es mejor usar este tipo de prueba en
—
Charles Duffy
printf '%q\n' "$@"
lugar de usarla echo
, lo que emitirá sus argumentos uno a una con caracteres ocultos y espacios en blanco escapados en forma visible.