开发者社区> 问答> 正文

如果从脚本运行,veracript安装脚本将失败

我正在给veracryp加油,需要以非交互模式运行安装脚本。要运行脚本,如果以交互方式运行,我需要传递脚本要求的答案。问题是,如果我通过命令管道传递答案或从文件传递答案,则会出现错误:

echo -e "1\n\nq\ny\ny\n\n" | /opt/tdp/veracrypt-1.23-setup-console-x64 
    Verifying archive integrity...  100%  
    All good. Uncompressing VeraCrypt 1.23 Installer  100% 
    Error: Terminal required

如果我运行相同的脚本而不使用管道,则该脚本可以正常运行。

展开
收起
祖安文状元 2020-01-07 14:30:53 613 0
1 条回答
写回答
取消 提交回答
  • 我已经使用Expect实现了这种自动化(根据脚本是与其他交互式程序“对话”的程序)

    如果不存在,则需要将其安装在docker映像中。

    您将需要创建一个带有问题提示和答案的期望脚本。

    在install-vera-crypt.exp文件中:

    #!/usr/bin/expect -f
    
    set timeout -1
    spawn /opt/tdp/veracrypt-1.23-setup-console-x64
    expect "The text you expect to answer 1\r"
    send -- "1\r"
    expect "The text you expect to answer q\r"
    send -- "q\r"
    
    ...
    
    expect eof
    
    

    然后,您可以使用以下命令执行它: expect -f install-vera-crypt.exp

    2020-01-07 14:31:02
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
15分钟打造你自己的小程序 立即下载
小程序 大世界 立即下载
《15分钟打造你自己的小程序》 立即下载