bash/bash.rs
1use rexpect::error::Error;
2use rexpect::spawn_bash;
3
4fn main() -> Result<(), Error> {
5 let mut p = spawn_bash(Some(1000))?;
6 p.execute("ping 8.8.8.8", "bytes")?;
7 p.send_control('z')?;
8 p.wait_for_prompt()?;
9 // bash writes 'ping 8.8.8.8' to stdout again to state which job was put into background
10 p.execute("bg", "ping 8.8.8.8")?;
11 p.wait_for_prompt()?;
12 p.send_line("sleep 0.5")?;
13 p.wait_for_prompt()?;
14 // bash writes 'ping 8.8.8.8' to stdout again to state which job was put into foreground
15 p.execute("fg", "ping 8.8.8.8")?;
16 p.send_control('c')?;
17 p.exp_string("packet loss")?;
18 Ok(())
19}