git 命令在 运行 来自脚本时不起作用

git commands not working when ran from a script

我正在尝试 运行 来自脚本的波纹管命令:

eval $(ssh-agent -s)
ssh-add

它们背后的目的是避免在当前会话的剩余时间被要求提供我的 git 密钥。一个一个地输入命令就可以了,所以我把它们放在这个脚本中:

#!/bin/bash 

eval $(ssh-agent -s)
ssh-add

在 运行 之后,我从 git 得到了正确的回应:

$ gitnopasskey.sh
Agent pid 4260
Enter passphrase for /u/.ssh/id_rsa:
Identity added: /u/.ssh/id_rsa (/u/.ssh/id_rsa)

但每次我获取、拉取等时,系统仍会提示我输入密钥。我已经复制了脚本中使用的命令并一一输入,以确保我输入的是相同的命令,但结果是一样的 - 输入命令时有效,从脚本 运行ning 命令时无效。

脚本 运行 在它们自己的 shell 中。尝试采购脚本:

source gitnopasskey.sh

否则所有环境变量都不会在您的父目录中被触动shell(就像脚本中的 cd 不会触及您父目录的工作目录一样)