Bash Git没有';当它';函数的内部
一般来说,我是Bash和Git的新用户,我对可能出现的问题摸不着头脑。我正在创建一个代码来检查.gitconfig是否存在,如果不存在,它允许您使用read命令几乎自动地对其进行配置,以获取您的电子邮件和用户名,并在一行代码中应用它们 代码示例:Bash Git没有';当它';函数的内部,bash,git,shell,git-config,Bash,Git,Shell,Git Config,一般来说,我是Bash和Git的新用户,我对可能出现的问题摸不着头脑。我正在创建一个代码来检查.gitconfig是否存在,如果不存在,它允许您使用read命令几乎自动地对其进行配置,以获取您的电子邮件和用户名,并在一行代码中应用它们 代码示例: #!/bin/bash # colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NO_COLOR='\033[0m' # function git git () {
#!/bin/bash
# colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
# function git
git () {
printf "${RED}Set your Git email\n${NO_COLOR}"
read GIT_AUTHOR_EMAIL
git config --global user.email "$GIT_AUTHOR_EMAIL"
printf "${RED}Set your Git username\n${NO_COLOR}"
read GIT_AUTHOR_USERNAME
git config --global user.name "$GIT_AUTHOR_USERNAME"
git config --list | grep user.email && git config --list | grep user.name
}
# git check & configuration
if [ -f ".gitconfig" ]; then
printf "${YELLOW}Git was previously configured\n${NO_COLOR}"
exit
else
git
printf "${YELLOW}Done\n${NO_COLOR}"
exit
fi
如果它不存在,它会调用一个函数来配置它,但是在使用set-x
命令进行快速调试之后,我发现文件.gitconfig根本没有创建,但当我自己在函数外部创建时它会创建。它所做的只是返回到read GIT\u AUTHOR\u EMAIL
,应用codeGIT config--global user.EMAIL“$GIT\u AUTHOR\u EMAIL”
,然后返回到第一个read命令。我希望代码检查.gitconfig,如果它存在,它还会询问用户是否要重新配置他们的Git详细信息。我马上就要这么做了
有什么方法可以修复它或者用另一种方法处理它吗?一旦定义了函数
git
,在该shell进程中调用名称git
将引用该shell函数。如果要调用程序git
,则需要使用内置的命令作为前缀:
command git config --global user.name "$GIT_AUTHOR_USERNAME"
如果您不打算重写git
命令,那么您可能希望以不同的方式命名shell函数,这样就完全避免了问题。一旦定义了函数git
,在该shell进程中对名称git
的任何调用都将引用该shell函数。如果要调用程序git
,则需要使用内置的命令作为前缀:
command git config --global user.name "$GIT_AUTHOR_USERNAME"
如果您不打算重写git
命令,那么您可能希望以不同的方式命名shell函数,这样就完全避免了问题。将函数命名为其他名称似乎是更好的解决方案。显然,简单地重命名shell函数似乎可以解决问题。谢谢你指出这一点!将函数命名为其他名称似乎是更好的解决方案。显然,简单地重命名shell函数似乎可以解决这个问题。谢谢你指出这一点!