Как написать функцию bash, которая помещает все аргументы в кавычки?

Как написать функцию bash, которая помещает все аргументы в кавычки?

Хочу сделать псевдоним git commit. Вот что у меня есть на данный момент: function commit() { git commit -m "$@"; }

Это работает для сообщений коммита из одного слова, но ломается, когда вы пытаетесь, commit a messageнапример. Как мне сохранить пробелы в кавычках для вызова, сделанного моей функцией?

решение1

Это решит вашу проблему:

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

Подробнее смотрите здесь:https://unix.stackexchange.com/questions/41571/какая-разница-между-и-

решение2

Конечно, вы можете заключить его в кавычки, чтобы иметь возможность передать в качестве аргумента сообщение из нескольких слов:

commit "this is my message"

Другим вариантом было бы использование readкоманды, которая прослушивает ввод после первоначального вызова функции:

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

Вам просто нужно позвонить commitи ввести свое сообщение в строке запроса.

Связанный контент