![使用 echo 后无法控制 pianobar](https://linux22.com/image/1039339/%E4%BD%BF%E7%94%A8%20echo%20%E5%90%8E%E6%97%A0%E6%B3%95%E6%8E%A7%E5%88%B6%20pianobar.png)
我有一个脚本,它可以启动 pianobar(潘多拉播放器)并在启动后自动加载到 tty2。我正在运行 Ubuntu Precise 12.04。
这是一个非常简单的脚本:
#!bin/bash
sleep 5
echo "2" | pianobar
这有效,它选择了 2 号站并开始播放...但是当我尝试输入命令时它不起作用(例如按“p”暂停)。它会显示字母一秒钟,然后隐藏它。如果我尝试使用 ctrl+z 退出,它只是停留在那里,我根本无法使用它。
如果我运行它,它可以正常工作但不会自动选择第二个站:
#!bin/bash
sleep 5
pianobar
有没有办法编写这个程序,让它自动输入“2”,然后允许我从那里进行控制?还是每次启动时我都必须选择 2?
编辑:
我将其修改为:
#!bin/bash
sleep 5
{ echo 2 ; cat ; } | pianobar
它的作用和“echo 2 | pianobar”完全相同
“pianobar 没有从默认电台开始的选项吗“
我本来也这么想,但是当我执行“man pianobar”时,我找不到默认设置的命令
当我打开程序时,它会登录,然后程序以“选择站点:”开始,我希望它自动进入第二个站点。
答案1
发生的情况是,您将 的 stdoutecho
与 的 stdin链接起来pianobar
,但 echo 退出并且流消失。尝试一下:
{ echo 2 ; cat ; } | pianobar
但是,我的主要问题是——你想实现什么?为什么不只启动钢琴吧?如果这是问题所在,那么钢琴吧没有从默认电台启动的选项吗?