/dev/null--Linux系统黑洞,解决控制台的刷屏问题

通常控制台在执行某个jar包时,屏幕会刷个不停,直到程序执行完毕,类似这种:
在这里插入图片描述

那么就可以编写一个脚本,把输出的内容全部扔进“黑洞”。此脚本模拟在hadoop102和hadoop103两台主机上循环执行jar文件:

#!/bin/bash

for i in hadoop102 hadoop103
do
    ssh $i "java -jar /opt/module/applog/gmall2020-mock-log-2020-05-10.jar
     1>/dev/null 2>/dev/null &"
done

解释一下:

  • 标准输入0:从键盘获得输入 /proc/self/fd/0
  • 标准输出1:输出到屏幕(即控制台) /proc/self/fd/1
  • 错误输出2:输出到屏幕(即控制台) /proc/self/fd/2
  • 2>&1:把2的数据传给1
  • 放在最后的&:使命令在后台执行,这样就在前台执行其他的命令
  • /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。

于是就有了简化版

#!/bin/bash
for i in hadoop102 hadoop103; do
    ssh $i "java -jar /opt/module/applog/gmall2020-mock-log-2020-05-10.jar >/dev/null 2>&1 &"
done 
posted @ 2021-01-26 00:40  孙晨c  阅读(238)  评论(0编辑  收藏  举报