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

时间:2017-12-12 18:04:22

标签: linux expect

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

以下是我的预期脚本($ 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

1 个答案:

答案 0 :(得分:1)

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

spawn bash -ic "customCommandName param1 param2"

发送东西时不要忘记输入:

send -- "$USER\r"

$ USER变量来自哪里?如果它是环境变量,请执行此操作

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