如何在bash脚本中捕获交互式python脚本的最终输出?

时间:2020-07-25 01:38:15

标签: bash shell variable-assignment python-interactive

我为Typer创建了一个clientserver的命令行界面。

这将启动一个交互式登录,显示输入用户名和密码的提示。如果有效,它将授权令牌回显到标准输出。

$ snappy login
Username:
Password:

如何捕获shell脚本中的最后一个输出?我尝试了一个基本的子shell:

token=$(snappy login)

但是随后token捕获了Username: Password: <authorization token>,并且没有文本显示在标准输出中。

我当前的选择:

script -qc 'snappy login'
token=$(tail -1 typescript)
rm typescript

删除了底部13行,因为它们仅包含令牌字符:

$ snappy login 2>&1 | hexdump -C
myemail@mail.com
00000000  55 73 65 72 6e 61 6d 65  3a 20 50 61 73 73 77 6f  |Username: Passwo|

00000010  72 64 3a 20 65 79 4a 30  65 58 41 69 4f 69 4a 4b  |rd: eyJ0eXAiOiJK|

1 个答案:

答案 0 :(得分:0)

尝试

token=$(snappy login | cut -d':' -f3)

cut -d':' -f3 <-使用:作为分隔符并打印第三个字段