Tengo un script, que es esencialmente un contenedor alrededor de un ejecutable con el mismo nombre en una máquina diferente. Por el bien de ejemplo, voy a envolver printf aquí. Mi script actual se ve así:Prevenir que ssh rompa los parámetros del script de shell
#!/bin/bash
ssh [email protected] printf "[email protected]"
Desafortunadamente, esto se rompe cuando uno de los argumentos contiene un espacio, p. esperaría que los siguientes comandos dieran salidas idénticas .:
~$ ./wrap_printf "%s_%s" "hello world" "1"
hello_world1_
~$ printf "%s_%s" "hello world" "1"
hello world_1
El problema empeora cuando se trata de líneas de escape (escapadas). ¿Cómo escapo adecuadamente mis argumentos aquí?
Eso funcionará, gracias. Publicaré una respuesta adicional que también corrige el problema de las cotizaciones. – Ondergetekende