IT小春子 2023-09-21 11:07 采纳率: 72.7%
浏览 10
已结题

expect无交互切入root后 怎么执行docker system prune?当前提示报错!

有dockerqingli.sh 文件内容如下:

#!/usr/bin/expect
spawn su root
expect "*password:*"
expect "*密码*"
send "9@Lxc\r"
#expect "登陆成功"
expect eof
expect "]*"
send "docker system prune\r"
expect "*[y/N]*"
send "y\r"
interact

docker system prune直接执行时的结果

[root@localhost lxc347]# docker system prune
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all dangling images
  - all dangling build cache
Are you sure you want to continue? [y/N] 

expect dockerqingli.sh运行提示错误:

[li@localhost lxc347]$ expect dockerqingli.sh
spawn su root
密码:
[root@localhost lxc347]# invalid command name "y/N"
    while executing
"y/N"
    invoked from within
"expect "*[y/N]*""
    (file "dockerqingli.sh" line 14)
[li@localhost lxc347]$ 

dockerqingli.sh 怎么修正文件内容呢?

  • 写回答

2条回答 默认 最新

  • IT小春子 2023-09-21 12:55
    关注

    经过调试,将dockerqingli.sh内容修改如下,即可实现交互进入root用户,切换目录,执行docker system prune,然后进入指定目录实现sh deploy.sh等操作,如果有多个sh需要执行,可参照下列代码进行添加与完善。

    #!/usr/bin/expect
    #开始交互进入root用户与输入密码
    spawn su root
    expect "*password:*"
    expect "*密码*"
    send "942971@Lxc\r"
    #屏显输出空行
    send_user "\n\n"
    #屏显输出登录成功
    send_user "登陆成功"
    send_user "\n\n" 
    send_user "开始清理docker空余镜像"
    #判断]结尾
    expect "]*"
    #输入命令并回车执行
    send "docker system prune\r"
    #判断是否有y/n
    expect "y/N"
    #输入y并回车确认
    send "y\r"
    send_user "\n\n"
    send_user "清理docker空余镜像完毕"
    send_user "\n\n"
    expect "]*"
    #进入制定目录
    send "cd /home/lixiaochun/lxc347/\r"
    expect "]*"
    send "ls\r"
    expect "]*"
    send "cd /home/lixiaochun/lxc347/boot/\r"
    expect "]*"
    send "sh deploy.sh\r"
    expect "]*"
    send_user "全部执行完毕!!"
    #等待用户交互
    interact
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月29日
  • 已采纳回答 9月21日
  • 修改了问题 9月21日
  • 修改了问题 9月21日
  • 展开全部

悬赏问题

  • ¥15 需要写计算过程,求解答
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 C++行情软件的tick数据如何高效的合成K线
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战