Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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命令?_Git_Bash_Shell - Fatal编程技术网

如何从bash脚本执行git命令?

如何从bash脚本执行git命令?,git,bash,shell,Git,Bash,Shell,我有下面的bash脚本来启动ssh代理、添加密钥并对repo执行git拉取。代理被启动,密钥被添加,但是git pull没有执行……至少没有任何内容被回送到终端。如果我在终端中输入git命令,它就会工作……我需要在bash脚本中做些什么来让它工作吗 #!/bin/bash # if we can't find an agent, start one, and restart the script. if [ -z "$SSH_AUTH_SOCK" ] ; then exec ssh-age

我有下面的bash脚本来启动ssh代理、添加密钥并对repo执行git拉取。代理被启动,密钥被添加,但是git pull没有执行……至少没有任何内容被回送到终端。如果我在终端中输入git命令,它就会工作……我需要在bash脚本中做些什么来让它工作吗

#!/bin/bash

# if we can't find an agent, start one, and restart the script.
if [ -z "$SSH_AUTH_SOCK" ] ; then
  exec ssh-agent bash -c "ssh-add ; $0"
  exit
fi

exec ssh-add ~/.ssh/mykey
git --git-dir=/var/www/node/myapp/.git pull origin master
当我将-x添加到/bin/bash这是终端输出

+ '[' -z '' ']'
+ exec ssh-agent bash -c 'ssh-add ; ./startgit.sh'
+ '[' -z /tmp/ssh-<redacted>/agent.1733 ']'
+ exec ssh-add /home/ec2-user/.ssh/mykey
Identity added: /home/ec2-user/.ssh/mykey (/home/ec2-user/.ssh/mykey)
exec命令用执行的进程替换当前shell。因此,不会执行脚本中跟随它的行

从手册页:

exec:exec[-cl][-a name]文件[重定向…]

Exec文件,用指定的程序替换此shell。 你应该把它从线路上拆下来

只要有

ssh-add ~/.ssh/mykey
exec命令用执行的进程替换当前shell。因此,不会执行脚本中跟随它的行

从手册页:

exec:exec[-cl][-a name]文件[重定向…]

Exec文件,用指定的程序替换此shell。 你应该把它从线路上拆下来

只要有

ssh-add ~/.ssh/mykey

如果SSH\u AUTH\u SOCK为空,您确定要在退出后重新启动脚本吗?你试过调试它吗/bin/bash-x来回显正在运行的命令?如果SSH\u AUTH\u SOCK为空,您确定要在退出后重新启动脚本吗?你试过调试它吗/bin/bash-x以响应正在运行的命令?谢谢!!工作得很好谢谢你!!工作完美