将输出重定向到不同的窗口

时间:2016-10-17 07:49:19

标签: shell escaping pipe x11 xterm

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

结果:

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

这就是xterm会看到的(就像上面的回声一样)。

答案 1 :(得分:0)

使用xlessxmorexmessage,具体取决于您的安装位置。

尝试以下任何一项:

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

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

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