bash – variables entre comillas

Intento hacer una function bash para agregar automáticamente todo lo que no se ha rastreado o modificado en mi tree de trabajo, confirmarlo y pulsar.

Esto es lo que parece:

gcp() { git add -- .; git commit -m \"$1\"; git push origin $2; } 

Sin embargo, cuando lo pruebo, obtengo:

 $ gcp "test this" master error: pathspec 'this"' did not match any file(s) known to git. 

¿Cómo puedo hacer que las cotizaciones sobre las variables se comporten correctamente?

No deberías escaping de las citas. También sugiero citar todos los arguments. Tal vez su sucursal tiene un espacio en ella, ¿quién sabe? Y solo necesitas el punto y coma si agregas más declaraciones en una sola línea.

 gcp() { git add -- . git commit -m "$1" git push origin "$2" }