【问题标题】:Redirecting output to a different window将输出重定向到不同的窗口
【发布时间】:2016-10-17 07:49:18
【问题描述】:

在我的脚本中,我想打开一个新窗口来显示变量的内容。我有两个不成熟的想法:

  1. printf "%s\n" "$data" | xterm -e less 之类的东西(不起作用)。是否可以以某种方式重定向输出,还是必须使用临时文件?

  2. 类似于xterm -e 'printf "%s\n" "'"$data"'" | less',但如果$data 包含需要转义的内容,则会导致问题。

【问题讨论】:

    标签: shell escaping pipe x11 xterm


    【解决方案1】:

    试试这个等效的例子(添加空格,只是为了显示单引号字符串的连接方式):

    export data='embedded " double quote'
    export data="$data embedded ' singlequote"
    echo 'printf "%s\n" '  '"$data"'  ' | less'
    

    结果:

    printf "%s\n" "$data" | less
    

    这就是 xterm 会看到的(就像上面的 echo)。

    【讨论】:

    • 如果 $data 有 ",我的示例 2 将失败。
    【解决方案2】:

    使用xlessxmorexmessage,具体取决于您安装的哪个。

    尝试以下任何一种:

    printf "%s\n" "$data" | xless

    printf "%s\n" "$data" | xmore /dev/stdin

    printf "%s\n" "$data" | xmessage -file -

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多