¿Cómo puedo escribir una función bash que ponga todos los argumentos entre comillas?

¿Cómo puedo escribir una función bash que ponga todos los argumentos entre comillas?

Quiero un alias de git commit. Esto es lo que tengo hasta ahora: function commit() { git commit -m "$@"; }

Esto funciona para mensajes de confirmación de una sola palabra, pero se rompe cuando lo intentas, commit a messagepor ejemplo. ¿Cómo conservo espacios entre comillas para la llamada realizada por mi función?

Respuesta1

Esto resolverá su problema:

function commit() { git commit -m "$*"; }

Ver más aquí:https://unix.stackexchange.com/questions/41571/what-is-the-difference-between-and

Respuesta2

Por supuesto, puedes ponerlo entre comillas para poder pasar un mensaje de varias palabras como argumento:

commit "this is my message"

Otra opción sería utilizar el readcomando que escucha la entrada después de que la función haya sido llamada inicialmente:

function commit() {
printf "Enter your commit message.\n";
read msg;
git commit -m "$msg"; }

Simplemente llamaría commity luego ingresaría su mensaje cuando se le solicite.

información relacionada