我想在无头linux服务器上使用TUI(文本用户界面),将一些PYTHON代码的输出传递给“whiptail”。不幸的是,在鞭尾似乎什么也没发生。当我用管道从常规shell脚本输出时,whiptail工作得很好。以下是我所拥有的:
数据-上海通用汽车
#!/bin/bash
echo 10
sleep 1
echo 20
sleep 1
...
...
echo 100
sleep 1
$/数据-上海通用汽车|鞭梢--标题“测试”--量规“gauge”0 50 0
下面的进度条按预期递增。在
现在我尝试从python复制相同的东西:
数据-发电机
^{pr2}$$/数据-发电机|鞭梢--标题“测试”--量规“gauge”0 50 0
我得到下面的进度条保持在0%。未发现增量。一旦后台的python程序退出,Whiptail就会退出。在
有什么办法让python输出成功地通过管道传输到whiptail?我没有尝试过dialog;因为我想坚持whiptail,它是预装在大多数ubuntu发行版上的。在
man whiptail
说:这意味着
whiptail
读取standard input
。许多程序 通常缓冲输出,当它不去文件。强迫python
要产生无缓冲输出,您可以:使用
unbuffer
运行它:在命令行上使用
-u
开关:修改
data-gen.py
的shebang:在每个
print
之后手动刷新stdout:设置
PYTHONUNBUFFERED
环境变量:相关问题 更多 >
编程相关推荐