screen的stuff命令使用stdin吗?

时间:2018-12-12 22:01:09

标签: shell gnu-screen

mpv是一种媒体播放器,可以从命令行交互使用。这将在终端启动它:

mpv path/to/playlist_file.m3u --no-audio-display

然后我可以按>转到下一首曲目并使用other interactive commands

我可以使用screen对其进行控制,如下所示:

# start a screen session called "my_player"
screen -d -m -S my_player mpv path/to/playlist_file.m3u --no-audio-display
# next track
screen -S my_player -p 0 -X stuff ">"
# prev track
screen -S my_player -p 0 -X stuff "<"
# "end of text character" = control + c = terminate
screen -S my_player -p 0 -X stuff $'\003'

但是屏幕的stuff命令在这里做什么?我会猜到“将输入发送到标准位置”,但是echo ">" | mpv path/to/playlist_file.m3u不会使其启动并立即跳过曲目。

man screen说:

  

将字符串字符串填充到当前窗口的输入缓冲区中。这就像“粘贴”命令,但开销要少得多。您不能使用“ stuff”命令粘贴较大的缓冲区。它对于键绑定最有用。另请参阅“ bindkey”。

用“输入缓冲区”表示标准输入还是其他?

(我问是因为我想通过Port从Elixir控制此程序,该程序使用标准的输入和输出,但是到目前为止,我的输入似乎被忽略了。)

0 个答案:

没有答案