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

2021-01-29 11:24:09 浏览数 (1)

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

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

代码语言:javascript复制
#!/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的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。

于是就有了简化版

代码语言:javascript复制
#!/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 

0 人点赞