当被问到时如何自动点击bash脚本中的Enter?

Ook*_*ker 3 bash enter pipe echo

我知道这个问题已被多次回答,但我仍然无法弄清楚如何去做.也许是因为我不知道要搜索的正确关键字.

运用

echo -ne '\n' | enter
Run Code Online (Sandbox Code Playgroud)

不起作用.我的代码是:

#! /bin/bash
#Grub-customizer
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
echo -ne '\n' | return
sudo apt-get update
sudo apt-get install grub-customizer
Run Code Online (Sandbox Code Playgroud)

Tho*_*zco 14

你应该把它\n输入到将要接收它的命令中(否则它将永远不会看到它!):

echo -ne '\n' | sudo add-apt-repository ppa:danielrichter2007/grub-customizer
echo -ne '\n' | sudo apt-get install grub-customizer
Run Code Online (Sandbox Code Playgroud)

现在,这里正确的解决方案是改为使用-y标志:

sudo add-apt-repository -y ppa:danielrichter2007/grub-customizer
sudo apt-get install -y grub-customizer
Run Code Online (Sandbox Code Playgroud)

  • 虽然`echo -ne'\n''是问题描述中的忠实副本,但是写​​出的惯用方法只是`echo`. (4认同)
  • 管道可能工作也可能不工作 - 你知道apt-get和apt-add-repository是从stdin而不是`/ dev/tty`读取的吗?可能会更好地强化`-y`标志建议,这是一个更加确定的事情. (2认同)