You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在whiptail文本框显示命令输出?现有方法失效求替代方案

问题

whiptail命令有--textbox选项,可在对话框中显示文本文件内容。我想用命令输出来替代文本文件内容,尝试运行命令whiptail --textbox /dev/stdin 30 60 <<< "$(echo Hello)"后得到空文本框,请问还有哪些方法可将命令输出当作文件处理?

解决方法
  • 管道直接传递输出
    用管道把命令输出直接导入whiptail的标准输入,这是最简洁的方式:

    echo "Hello" | whiptail --textbox /dev/stdin 30 60
    

    管道会持续向/dev/stdin输送数据,whiptail能正确读取完整内容。

  • 进程替换
    bash、zsh等shell支持进程替换,可将命令输出模拟为临时文件,语法为<(命令):

    whiptail --textbox <(echo "Hello") 30 60
    

    系统会生成一个伪文件描述符,whiptail读取该"文件"等价于读取命令输出。

  • 临时文件中转
    兼容性最强的方案,先将命令输出写入临时文件,再让whiptail读取:

    temp_file=$(mktemp)
    echo "Hello" > "$temp_file"
    whiptail --textbox "$temp_file" 30 60
    rm "$temp_file"
    

    这种方式适用于所有支持whiptail的环境,注意用完后清理临时文件。

内容的提问来源于stack exchange,提问作者user19897594

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:15:35