【问题标题】:Redirecting output to a different window将输出重定向到不同的窗口
【发布时间】:2016-10-17 07:49:18
【问题描述】:
在我的脚本中,我想打开一个新窗口来显示变量的内容。我有两个不成熟的想法:
printf "%s\n" "$data" | xterm -e less 之类的东西(不起作用)。是否可以以某种方式重定向输出,还是必须使用临时文件?
类似于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)。
【解决方案2】:
使用xless、xmore 或xmessage,具体取决于您安装的哪个。
尝试以下任何一种:
printf "%s\n" "$data" | xless
printf "%s\n" "$data" | xmore /dev/stdin
printf "%s\n" "$data" | xmessage -file -