Por favor, considere este script simples chamado teste :
#!/bin/bash
echo $1
e os seguintes comandos e chamadas:
$ 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
Alguém poderia explicar por que a chamada do teste não se comporta como o comando ecoar ou apontar para a documentação relevante?
2
Já existe um comando de teste ; você tem sorte de estar usando o caminho completo; caso contrário, teria dificuldade em depurar a situação.
—
Rui F Ribeiro
O melhor para esse tipo de teste é usar em
—
Charles Duffy
printf '%q\n' "$@"
vez de echo
, o que emitirá seus argumentos individualmente com caracteres ocultos e espaços em branco escapados de forma visível.