如何解决你如何强制苹果脚本 + aws 保险库等待 mfa 访问 使用delay使用display dialog
#!/bin/zsh
tell application "iTerm"
activate
select first window
# Create new tab
tell current window
create tab with default profile
end tell
# Split pane
tell current session of current window
split vertically with default profile
split vertically with default profile
split vertically with default profile
end tell
# Exec commands
tell first session of current tab of current window
write text "aws-vault exec my-role -d 12h --no-session"
write text "start him"
end tell
tell second session of current tab of current window
write text "start her"
end tell
tell third session of current tab of current window
write text "start you"
end tell
tell fourth session of current tab of current window
write text "start me"
end tell
end tell
问题是脚本不会等待我从 aws 命令填写 mfa 信息。我也试过 aws-command; start him
,但它只是退出并且根本不执行 start him
。以前有人遇到过这种情况吗?
解决方法
我认为这不太可能,因为 Apple Script 无法知道 aws
命令需要 mfa 信息以及您是否已完成输入该信息。
但是有 2 种非常hacky 的方法可以实现这一点:
使用delay
这个选项可能非常不可靠,但它可能会起作用。
您可以使用 delay
命令让 AppleScript 等待 X 秒,直到它运行 write text "start him"
。假设输入 mfa 信息大约需要 10 秒钟,然后您将使用 delay 10
。下面是代码的样子。
# more code above...
tell first session of current tab of current window
write text "aws-vault exec my-role -d 12h --no-session"
delay 10 # <-- change this value to your liking
write text "start him"
end tell
# more code below...
使用display dialog
我个人认为这对您来说可能是最可靠的选择。您可以做的是打开一个对话框,一旦您输入了 mfa 信息,请单击“确定”,以便脚本继续运行。所以你会有这样的事情:
# more code above...
tell first session of current tab of current window
write text "aws-vault exec my-role -d 12h --no-session"
display dialog "Click Ok once you are done "
write text "start him"
end tell
# more code below...
只是一个小警告:我没有测试上述代码,因为我没有 macOS 计算机。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。