Есть ли какой-нибудь способ автоматически ввести некоторый текст на терминале?

#bash #git #terminal

#bash #git #терминал

Вопрос:

Когда я использую git через терминал, я открываю вкладку, посвященную только команде git, тогда я не хочу каждый раз вводить «git». Есть ли какой-нибудь способ автоматически вводить текст в каждой строке?

Комментарии:

1. В ~/.bashrc : alias g=git

2. Вы действительно слишком заняты, чтобы ввести три символа?

Ответ №1:

Вы можете определить каждую команду git как псевдоним, чтобы, например, при вводе diff mybranch вызывался git diff mybranch . Чтобы вызвать обычную команду командной строки, введите перед ней обратную косую черту, например, diff file ../elsewhere/file вызывает /usr/bin/diff , а не git diff .

Поместите следующий код в файл ~/.git.bashrc . Настройте свой git-терминал на запуск bash --rcfile ~/.git.bashrc вместо простого запуска bash .

 . ~/.bashrc
for c in $(COLUMNS=4 git help -a | sed -n 's/^  ([a-z])/1/p';
           git config --get-regexp '^alias.' | sed 's/alias.//; s/ .*//')
do
  alias "$c=git $c"
  complete -F _complete_alias foo
done
  

Для complete строки требуется _complete_alias функция.

Ответ №2:

Я создал эту функцию .bashrc, которая отправляет код и помечает его тегами. Все, что вам нужно, это комментарий, который вы хотите для отправки.

Псевдоним функции «gp» (что расшифровывается как git push).

Итак, если вы хотите нажать и пометить какой-либо код, все, что вам нужно после добавления этого кода в свой .bashrc, это:

$ gp «протестируйте мою новую функцию git push»

 gpfunction() {
    git status
    echo [Enter to continue...]
    read a
    git pull
    git commit -am"$1"
    git push
    tag_major_min=$(git tag |sort -V|tail -1|awk -F. '{print $1 "." $2 "."}')
    echo Tag major min $tag_major_min
    latest_tag_number=$(git tag |sort -V|tail -1|awk -F. '{print $3}')
    echo Latest tag number $latest_tag_number
    next=$(echo $latest_tag_number   1 | bc)
    echo Next $next
    new_tag=$(echo $tag_major_min $next | sed 's/ //g')
    echo New tag $new_tag
    git tag $new_tag
    git push origin $new_tag
}
alias gp=gpfunction
  

Этот скрипт использует стандартную версию major.minor.patch и увеличивает версию исправления.

Вы можете настроить его по своему усмотрению.