gpt4 book ai didi

linux - 如何在 expect spawn 命令中使用 .bashrc 命令

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:08 29 4
gpt4 key购买 nike

我正在尝试在我的 expect 脚本中运行自定义 .bashrc 命令,但它无法识别该命令。这是显而易见的,因为每个脚本都在自己的 shell 中运行,但是我无法 source ~/.bashrc 因为它返回一个 invalid command name "-f"(不确定它从哪里得到“-f”)。有没有人对如何去做有任何建议?此外,如果还有其他明显的问题,请忽略它们,因为我会自己解决这些问题,我只需要 spawn 命令方面的帮助。

下面是我的 expect 脚本($USER 和 $PASS 是从不同的 bash 脚本传递过来的)

#!/usr/bin/expect
log_file expectLog.log ;#
cd ~/customDirectory
source ~/.bashrc
spawn customCommandName param1 param2
expect -exact "User Name:"
send -- $USER
expect -exact "Password:"
send -- $PASS

最佳答案

您需要启动一个交互式 bash shell(读取 .bashrc)来运行该函数:

spawn bash -ic "customCommandName param1 param2"

发送内容时不要忘记按回车键:

send -- "$USER\r"

$USER 变量从何而来?如果是环境变量,就这样做

send -- "$env(USER)\r"

关于linux - 如何在 expect spawn 命令中使用 .bashrc 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47778911/

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