shell、spawn

之前想用shell做自动化操作的脚本,就用了expect方式,一直运行得好好的,前几天报spawn语句错误了,找不到什么原因。


```shell
#!/bin/bash


passwd=39a490c5

#docker
    expect -c "
    set timeout 20
    spawn sudo docker run -it --privileged -v /home/cv/data/xbd/3588v5_trans-205:/test rknn-toolkit2:1.3.0-cp36 /bin/bash
    send \"$passwd\r\"
    expect \"*]*\"
    send \"cd test\r\"
    expect \"*]*\"
    send \"python temp.py\r\"
    expect \"*]*\"
    send \"exit\r\"
    interact
    "


报错是在spawn语句上,找不到什么原因;

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/130480943876191.png "#left")




#!/bin/bash

passwd=39a490c5
 
#docker
    expect -c "
    set timeout 20
    spawn sudo -S docker run -it --privileged -v /home/cv/data/xbd/3588v5_trans-205:/test rknn-toolkit2:1.3.0-cp36 /bin/bash
    expect \"Password:\"
    send \"$passwd\r\"
    expect \"*]*\"
    send \"cd test\r\"
    expect \"*]*\"
    send \"python temp.py\r\"
    expect \"*]*\"
    send \"exit\r\"
    interact
    "

使用-S选项来从标准输入流中接收密码,而不是从Expect脚本中发送密码

spawn bash xxxx
也许有用,提供一个思路