Wie kann ich eine Bash-Funktion schreiben, die alle Argumente in Anführungszeichen setzt?

Wie kann ich eine Bash-Funktion schreiben, die alle Argumente in Anführungszeichen setzt?

Ich möchte „git commit“ als Alias ​​verwenden. Das habe ich bisher: function commit() { git commit -m "$@"; }

Dies funktioniert für Commit-Nachrichten mit einem einzigen Wort, bricht aber ab, wenn Sie es commit a messagebeispielsweise versuchen. Wie behalte ich Leerzeichen in Anführungszeichen für den Aufruf meiner Funktion bei?

Antwort1

So lösen Sie Ihr Problem:

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

Mehr dazu hier:https://unix.stackexchange.com/questions/41571/was-ist-der-unterschied-zwischen-und

Antwort2

Sie können es natürlich in Anführungszeichen setzen, um eine aus mehreren Wörtern bestehende Nachricht als Argument übergeben zu können:

commit "this is my message"

Eine andere Möglichkeit wäre, den readBefehl zu verwenden, der nach dem ersten Aufruf der Funktion auf Eingaben wartet:

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

Sie rufen einfach an commitund geben dann bei der Eingabeaufforderung Ihre Nachricht ein.

verwandte Informationen