2016-12-16 23 views
0

我在命令行的脚本安装期间(-y不是一个选项)尝试在[y/N]提示中回答y使用期望来模拟用户输入

到目前为止,我有以下几点:

#!/bin/bash 
expect << EOF 
dasht-docsets-install expressjs 
expect "[y/N]" 
send "y" 
EOF 

但是,这给出了以下的输出:

invalid command name "dasht-docsets-install" 
    while executing 
"dasht-docsets-install expressjs" 

我不得不多发docsets安装,只有一个能在同一时间,即我被安装不能去dasht-docsets-install expressjs vuejs等...所以理想情况下,我想创建一个bash函数,可以这样递docset像这样:

doc_install expressjs 

这将负责处理输入。

任何帮助,将不胜感激。

+0

试试这个:'echo y | dasht-docsets-install expressjs' – Cyrus

+0

似乎不起作用。 –

+1

虽然接受的答案适用于您的特定情况,但您的问题是由于您直接在预期内调用了您的功能而导致的。期望将因此将'dasht-docsets-install'解释为预期关键字(不存在并且引发错误)。你应该写'spawn dasht-docsets-install expressjs'来使它工作。另外,为了验证你的发送,你需要写'send'y \ r“' – Aserre

回答

0

使用此:

dasht-docsets-install -f expressjs 

# `-f`, `--force` 
# Forces the operation by overriding the interactive confirmation prompt. 

来源:github repo

+0

谢谢,不敢相信我错过了。 –