【发布时间】:2014-09-07 19:59:06
【问题描述】:
我有以下 bash 脚本来启动 ssh-agent,添加我的密钥并对 repo 执行 git pull。代理已启动,密钥已添加,但 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)
【问题讨论】:
-
如果
SSH_AUTH_SOCK为空,您确定要在退出后重新启动脚本吗?您是否尝试过“调试”它(#!/bin/bash -x回显正在运行的命令)?