我正在开发一个脚本,我必须从命令行运行它(比如T1)。脚本必须打开另一个终端(T2),并且必须将此终端(T2)的输出重定向到文件,以便我可以从主脚本(T1)解析文件。我知道如何从主终端(T1)打开一个新终端(T2)。
gnome-terminal -e "ant" 2>&1
我也知道如何使用tee
将命令输出发送到文件加控制台 ls | tee /home/xyz.txt
所以我尝试从T1运行T2并将T2的输出重定向到xyz.txt:
gnome-terminal -e "ant" 2>&1 | tee /home/xyz.txt
然而xyz.txt没有从T2获得输出。 那么如何从T1获得T2的输出到xyz.txt?
答案 0 :(得分:2)
虽然这听起来很复杂,看起来像https://en.wikipedia.org/wiki/ISO_3166-2:IT#Provinces,但这是一种方法(用xterm而不是gnome-terminal测试)。
gnome-terminal -e "ant | tee $(tty) xyz.txt; read dummy"
tty
命名启动终端的终端设备,而不是新终端。 read
是可选的,等待ENTER,以便您查看终端显示屏上的内容。