我正在尝试在我的 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"
我是一名优秀的程序员,十分优秀!