gpt4 book ai didi

stdout - 期望只输出命令的标准输出,没有别的

转载 作者:行者123 更新时间:2023-12-03 23:56:39 25 4
gpt4 key购买 nike

如何编写执行命令并仅打印命令输出的期望脚本?

我尝试了各种方法,但都不起作用,例如

#!/usr/bin/expect
log_user 0
spawn bash
send "echo 1\r"
log_user 1
expect "1"
log_user 0
send "exit\r"
expect eof

给出输出:

echo 1



虽然我只需要 "1"。我希望有人知道如何修复我的示例的简单解决方案

最佳答案

从发送的命令中捕获输出在期望中有点痛苦。

这是一个不依赖于 log_user 设置的更一般的情况,它使用正则表达式捕获输出:

#!/usr/bin/expect
log_user 0
spawn bash

# set the prompt to a known value
send "PS1='>'\r"
expect -re {>$}

# send a command: we don't know what the output is going to be
send "echo \$RANDOM\r"

# capture the portion of the output that occurs just before the prompt
expect -re "\r\n(.*?)\r\n>$"
puts "output is: $expect_out(1,string)"

send "exit\r"
expect eof

我突然想到一个想法:如果命令不需要任何交互,那么expect 就有点矫枉过正了:只需使用 exec
set output [exec bash -c {echo $RANDOM}]

关于stdout - 期望只输出命令的标准输出,没有别的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45210358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com