返回 Skill 列表
extension
分类: 开发与工程无需 API Key

pexpect-cli

持久化的pexpect会话,用于自动化交互式终端应用程序。当您需要控制像ssh、数据库或调试器这样需要用户输入的交互式程序时,请使用它。

person作者: jakexiaohubgithub

Usage

# Start a new session
pexpect-cli --start
# 888d9bf4

# Start with a label
pexpect-cli --start --name ssh-prod
# a3f4b2c1

# Execute code in a session
pexpect-cli 888d9bf4 <<'EOF'
child = pexpect.spawn("bash")
child.sendline("pwd")
child.expect(r"\$")
print(child.before.decode())
EOF

# List sessions
pexpect-cli --list

# Stop a session
pexpect-cli --stop 888d9bf4

Examples

SSH Session

session=$(pexpect-cli --start --name ssh-session)

pexpect-cli $session <<'EOF'
child = pexpect.spawn('ssh user@example.com')
child.expect('password:')
child.sendline('mypassword')
child.expect('\$')
print("Connected!")
EOF

# Run commands
pexpect-cli $session <<'EOF'
child.sendline('uptime')
child.expect('\$')
print(child.before.decode())
EOF

Database Interaction

session=$(pexpect-cli --start --name db-session)

pexpect-cli $session <<'EOF'
child = pexpect.spawn('sqlite3 mydb.db')
child.expect('sqlite>')
child.sendline('.tables')
child.expect('sqlite>')
print("Tables:", child.before.decode())
EOF

Available in Namespace

  • pexpect: The pexpect module
  • child: Persistent child process variable (persists across executions)

See README.md for installation, monitoring, and advanced usage.