Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Git没有';当它';函数的内部_Bash_Git_Shell_Git Config - Fatal编程技术网

Bash Git没有';当它';函数的内部

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 () {

一般来说,我是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 () { 
   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
,应用code
GIT 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函数似乎可以解决这个问题。谢谢你指出这一点!