You need to enable JavaScript to run this app. 如何在expect中使用send命令发送变量拼接字符串的内容
优惠活动
大模型
产品
解决方案
定价
更多

如何在expect中使用send命令发送变量拼接字符串的内容

Expect变量与字符串拼接发送正确写法

Expect 基于 Tcl 语法,字符串拼接直接在双引号内完成即可,为了避免变量名识别歧义,推荐用花括号明确变量边界:

expect "UNIX" {send "${user}01\r"}

当你传入的user值为Samanta时,上述代码会自动拼接输出Samanta01\r,完全符合需求。

错误写法原因说明

  • send $user"01\r":拆分的字符串会被 Tcl 识别为两个独立参数,send 命令无法正确拼接内容。
  • send "$user"01\r"":引号嵌套逻辑错误,Tcl 解析时会提前闭合字符串,触发语法错误。
  • send "$user'01\r'":单引号会被当做普通字符发送,最终输出会带上多余的单引号,不符合需求。

完整示例代码

set user [lindex $argv 0]
expect ">" {send "passwd $user\r"}
sleep 1
# 第一次输入新密码
expect "UNIX" {send "${user}01\r"}
sleep 1
# 第二次确认密码
expect "UNIX" {send "${user}01\r"}

内容的提问来源于stack exchange,提问作者Heron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 05:45:09