Как запустить функцию Bash с использованием псевдонима Git
Я хочу использовать псевдоним Git в ~/.gitconfig, чтобы он вызывал функцию bash, если она определена, в противном случае вызовите обычный git checkout
,
Вот что я разработал:
cat ~/.gitconfig
...
[alias]
...
co = !(compgen -A function vxzExecuteGitCheckout >/dev/null && vxzExecuteGitCheckout ) || git checkout
Проблема в том, что Git использует /bin/sh (что dash
в моем случае) compgen
так как это bash
встроенный.
Любой способ убедиться, что Git использует bash
выполнить эту команду?
Обратите внимание, что vxzExecuteGitCheckout()
определяется в файле, который пока не включен в ~/.bashrc.
Другой вопрос, если бы я использовал git co -b param1 param2 ...
будет ли приведенное выше определение псевдонима передаваться -b param1 param2
в git checkout
если эта функция Bash не найдена?
1 ответ
Использование bash
явно:
co = !bash -c '( compgen -A function vxzExecuteGitCheckout >/dev/null && vxzExecuteGitCheckout ) || git checkout' -
другой возможностью было бы написать сценарий оболочки с правильной строкой shebang #!/bin/bash
и вызвать этот скрипт для alias.co
(см. вопрос " Как встроить скрипт bash непосредственно в псевдоним git")