使用 echo 后无法控制 pianobar

使用 echo 后无法控制 pianobar

我有一个脚本,它可以启动 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

但是,我的主要问题是——你想实现什么?为什么不只启动钢琴吧?如果这是问题所在,那么钢琴吧没有从默认电台启动的选项吗?

相关内容