效果图

shell1输入命令shell2输出结果
Linux上实现shell1输入命令shell2输出结果

具体步骤

一、创建两个shell窗口

创建一台虚拟机的两个shell窗口
Linux上实现shell1输入命令shell2输出结果

二、进入/proc/$$/fd目录

cd /proc/$$/fd两个shell都进入一下/proc/$$/fd目录( $ $会转换为当前shell的PID,直接输当前shell的PID也可以)
Linux上实现shell1输入命令shell2输出结果
ll查看两个shell当前目录下的文件信息
此时shell1的软链接文件都指向/dev/pts/0,shell2的软链接文件都指向/dev/pts/1。
(当前目录下的文件描述符0代表的是标准输入,文件描述符1代表的是标准输出,文件描述符2代表的是错误输出)Linux上实现shell1输入命令shell2输出结果

三、备份shell1的标准输出

exec 6>&1创建一个文件描述符6让其指向标准输出1的位置,后期恢复标准输出1时用到,相当于标准输出1的备份
Linux上实现shell1输入命令shell2输出结果

四、把shell1的标准输出指向shell2

exec 1>/dev/pts/1把shell1的标准输出1指向shell2的位置
此时在shell1中输入命令,会在shell2中显示结果,但是命令的错误信息还是在shell1中输出。
Linux上实现shell1输入命令shell2输出结果

五、还原shell1的标准输出

exec 1>&6将标准输出1指向刚刚备份6的位置
此时已经恢复,shell1输入命令,结果也在shell1输出。
Linux上实现shell1输入命令shell2输出结果

相关文章: