我试图在我的期望脚本中运行自定义.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
答案 0 :(得分:1)
您需要启动一个交互式bash shell(读取.bashrc)来运行该函数:
spawn bash -ic "customCommandName param1 param2"
发送东西时不要忘记输入:
send -- "$USER\r"
$ USER变量来自哪里?如果它是环境变量,请执行此操作
send -- "$env(USER)\r"