Como posso escrever uma função bash que coloque todos os argumentos entre aspas?

Como posso escrever uma função bash que coloque todos os argumentos entre aspas?

Eu quero o alias git commit. Aqui está o que tenho até agora: function commit() { git commit -m "$@"; }

Isso funciona para mensagens de commit de uma única palavra, mas quebra quando você tenta, commit a messagepor exemplo. Como retenho espaços entre aspas para a chamada feita pela minha função?

Responder1

Isto irá resolver o seu problema:

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

Veja mais aqui:https://unix.stackexchange.com/questions/41571/what-is-the-difference-between-and

Responder2

Você pode, é claro, colocá-lo entre aspas para poder passar uma mensagem com várias palavras como argumento:

commit "this is my message"

Outra opção seria usar o readcomando que escuta a entrada após a função ter sido chamada inicialmente:

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

Você simplesmente ligaria commite digitaria sua mensagem no prompt.

informação relacionada