我正在尝试从脚本运行bellow命令:
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)
但每次我取,拉等时我仍然会被提示输入我的密钥。我已经复制了脚本中使用的命令并逐个输入,以确保我输入相同的命令,但是结果是相同的 - 它在输入命令时起作用,从脚本运行它们时不起作用。
答案 0 :(得分:2)
脚本在自己的shell中运行。尝试采购脚本:
try ... catch
否则所有环境变量都将在您的父shell中不受影响(就像脚本中的cd不会触及父项的工作目录一样)