有没有可能在bash脚本中定义一个函数,为不同的用户定义git别名,以便让用户在共享系统上应用他们的更改,从而使提交包含他们的用户名和电子邮件?
alias git_as_user1='GIT_AUTHOR_NAME="User1_pre User1_sur" GIT_AUTHOR_EMAIL="user1@company.de" GIT_SSH="/home/account/ssh_user_wrapper.sh" GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL git'
我提出了下面的函数,但它不是在定义别名时计算args,而是在以后调用别名时计算args。这是无意的,使该方法变得无用。
function alias_git_as ()
{
alias git_as_$1='GIT_AUTHOR_NAME=$1 GIT_AUTHOR_EMAIL=$2
}
在.basrc中:
alias_git_as "login" "Surname Prename" "user@company.de"
- 〉不起作用!!!-〉定义别名
git_as_login
,但第二个和第三个参数被忽略。当某个用户从他的终端运行git_as_login
时,他需要再次传递“Surname Prename”“user@company.de“。但参数应该在定义别名时捕获。
1条答案
按热度按时间ovfsdjhp1#
两个问题:
此外,为了使这一功能适用于带有空格的名称,我们使用了下面的bash 5.x特性
${var@Q}
。请参阅https://ideone.com/PV09NG中的工作方式
一个与旧版本bash兼容,同时仍然支持不常见作者名的版本可能如下所示: