如何解决Bash脚本和作用域-脚本的内容似乎不影响我的文件系统?
刚找到一份新工作,并希望能够轻松在我的工作/个人github帐户之间进行切换。我知道有很多解决方案,但这不是我的问题(尽管欢迎任何简单的解决方案)。
如果我在终端中写入以下内容,它将从代理中删除所有当前的SSH密钥,并避免发生任何冲突:
eval `ssh-agent -s`
ssh-add -D
ssh-add ~/.ssh/id_rsa_work
然后我可以运行ssh-add -l,它将仅列出一个RSA密钥(我的工作密钥)。通常,我在代理中有4个会引起冲突。但这很棒,我可以轻松使用我的工作github,没有任何问题。
为了避免每天都要剪切和粘贴或将其键入,我尝试将其放入bash脚本中。该脚本似乎可以正常工作,并且显示的消息与我直接在终端中键入的消息相同(代理PID,并且仅列出一个键等),但是如果我之后运行ssh-add -l,它将显示所有4个ssh键和引起我同样的冲突。
那为什么呢? bash脚本是否不影响其外部的文件或其他内容?我是否不知道某种范围问题或权限?这是我的脚本:
#!/bin/bash
eval `ssh-agent -s`
ssh-add -D
ssh-add ~/.ssh/id_rsa_work
解决方法
在不影响当前shell的子shell中调用该脚本。调用脚本,使其在您当前的shell中运行:
. my_ssh_script.sh
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。