我有一个Bash脚本,我试着忘记一个repo,我必须按下Enter一个很长的Eula文本,字面上我必须手动按回车键20次以上然后键入yes。有人可以帮我自动按Enter键,最后在bash脚本中输入yes。
yes "" | command
和
echo -ne '\n' | <command>
对我不起作用,我仍然需要手动按回车键。
这是代码,所以当它运行wget时,我需要继续按Enter键,直到它询问你是否要接受许可证并在那里输入“是”。
#!/bin/bash
pid=$(ps aux | grep xxx-server |grep -v grep | awk '{print $2}')
if [ -n "$pid" ]; then
kill $pid
echo -e "\n$pid killed -Success"
fi
# Check if the package already installed then remove it
if [ `dpkg -l | grep xxx-server | wc -l` -gt "0" ]
then
apt-get -y remove xxx-server
fi
# wget the repo using silent install
if [ "apt-cache search xxx-server" ];then
#if [ $? != 0 ] ; then
echo -e "\nremoving repo ...."
#aptitude install $i -y > /dev/null
apt-get purge xxx-server-repo-* -y > /dev/null
echo -e "\nInstalling Reop .........."
yes "" | wget -q -O - http://xxx-server.com/ | sh
fi
答案 0 :(得分:7)
我不知道你想做什么,你最好给我们看一些代码! 但很可能你想使用expect:
#!/usr/bin/expect
spawn "yourscript"
for {set i 0} {$i < 20} {incr i 1} {
send "\n"
}
send "yes\n"
答案 1 :(得分:2)
即使这个问题已经很久了。这个答案可能对某人有所帮助。
您可以使用它来为脚本提供输入。
cat <(echo "yes") | "Your_Command"