Shell:修改程序标准输出

时间:2019-06-30 21:09:35

标签: shell

我一直试图像这样修改Terraria服务器的标准输出:

(([ -p ".pipe" ] || mkfifo .pipe) && (mono tModLoaderServer.exe -savedirectory ~/ -tmlsavedirectory ~/saves -modpath ~/mods < .pipe | sed 's/):/):\n/' &) && read > .pipe && rm .pipe)

应该做的是在以):结尾的行的末尾添加换行符

服务器正常启动,但是当我尝试发送命令时,服务器一遍又一遍地重复主菜单,以空白行分隔:

Choose World: Terraria Server v1.3.5.2 - tModLoader v0.10.1.5
1 world1
n New World
d <number>Delete World
m Mods Menu
b Mod Browser

[...]

这与我只是一次又一次地向控制台发送换行符的行为相同。 我怀疑“读取”会读取发布到shell stdin的任何内容,因此它基本上会将服务器stdout输送到其stdin中。

我找不到与我的问题有关的任何内容,也无法提出任何建议。我也愿意寻求完全不同的解决方案。

0 个答案:

没有答案