Finetuning Aesthetics for Large Language Model
· One min read
最近需要在 shell 脚本进行一些 CLI 交互式操作(指在脚本中输入文字或回车等操作),经过调研发现可以使用 expect 脚本实现,通常以 .ex
或 .exp
结尾。(与 shell 脚本有区别)
expect
是建立在 tcl 基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信. 其交互流程是:
spawn 启动指定进程 -> expect 获取指定关键字 -> send 想指定进程发送指定指令 -> 执行完成, 退出.
通常 linux 系统不会自动安装 expect 脚本,故需要自行安装,需要安装 tcl
和 expect
两个包,Ubuntu 下的安装指令为:
sudo apt install tcl expect
本例为在无法设置 ssh-key 的情况下向 ssh
进程中输入密码。
#!/usr/bin/expect
set timeout 30
spawn ssh -l root 172.16.22.131
expect "password*"
send "123456\r"
interacts
解读:
set timeout 30
: 设置 30s 的 timeoutspawn ssh -l root 172.16.22.131
: 创建一个 ssh 进程,并执行 sshexpect "password*"
: 执行完 2 后期望 (expect) 拿到的控制台输出send "123456\r"
: 向终端输入流发送 "123456\r",其中 \r
表示回车interacts
: 表示应用上述的交互more cases comming soon...