¿Hacer eco en un archivo manteniendo los espacios escapados?

¿Hacer eco en un archivo manteniendo los espacios escapados?

Sin actualizar, update_history¿cómo puedo asegurarme de que mi archivo de texto contenga:

hello\ world john\ doe

Así es como puedo pasar $greeting $namea una función o comando como hello\ world john\ doe.


function update_history {
  history=/tmp/hist
  grep -qF "$1" "$history" \
    || (combinations=$(echo "$1" | cat - $history) \
        && echo "$combinations" > $history)
}

greeting=hello\ world
name=john\ doe

update_history "$greeting $name"

Respuesta1

Encierre las expansiones de parámetros entre comillas dobles:

update_history "$greeting" "$name"

información relacionada