如何解决使用 zsh 脚本通过 SSH 连接到 EC2 以获取 EC2 IP 地址
我想在我的 zprofile 中创建一个别名,该别名将根据名称标签获取 EC2 IP 地址,然后通过 SSH 连接到该机器。我使用的是 mac。
这个 zsh 脚本成功检索到我想通过 ssh 进入的 EC2 机器的 IP 地址:
aws ec2 describe-instances \
--filters "Name=tag:Name,Values=my-name" \
--query "Reservations[*].Instances[*].[PrivateIpAddress]" \
--output text
输出可能如下所示:some.ip.address
这个 zsh 脚本让我可以通过 SSH 连接到我的 EC2 机器:
alias ec2="ssh person@some.ip.address.us-east-1.place"
谢谢!
解决方法
可能最简单的方法是设置第二个别名,因此您可以使用以下内容:
alias get_ec2_ip='aws ec2 describe-instances --filters "Name=tag:Name,Values=my-name" --query "Reservations[*].Instances[*].[PrivateIpAddress]" --output text'
然后你可以使用 zsh 的 command substitution,就像这样:
alias ec2='ssh person@`get_ec2_ip`'
请注意,在那里使用单引号非常重要,而不是双引号!否则,您将在设置别名时运行 get_ec2_ip
,这不是您想要的——您希望它将文字字符串 ssh person@`get_ec2_ip` 保存为别名,以便每次运行 get_ec2_ip
时都会运行 ec2
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。