June 20, 2020

Shell Script 執行後不要有任何回應顯示

Shell Script 執行後不要有任何回應顯示
example:

#!/bin/bash
find /var/www/html/*.pdf -type f -mtime +7 -exec rm -f {} \; 

root@user:~# find: ‘/var/www/html/*.pdf’: No such file or directory


這個目的是我要放在synology上, 跑一個刪除/var/www/html 7 天前的*.pdf,
但是呢?因為我有設定執行後應回email alert, 當/var/www/html裡面沒有任何*.pdf,
就會收到email 吐執行後的回應, 所以就可以在執行後面加 >> /dev/null 2>&1 就不會有任何的response echo了.

#!/bin/bash
find /var/www/html/*.pdf -type f -mtime +7 -exec rm -f {} \;  >> /dev/null 2>&1

搜尋/var/www/html/ 7天前的*.pdf檔案進行刪除.

解釋:

  1. /dev/null 看作"黑洞",它非常等價於一個只寫文件,所有寫入它的內容都會永遠丟失。而嘗試從它那兒讀取內容則什麼也讀不到。

  2. 2>&1 是將錯誤輸出到標準輸出。

延伸:

1> 指標準信息輸出路徑(也就是默認的輸出方式)
2> 指錯誤信息輸出路徑
2>&1 指將標準信息輸出路徑指定為錯誤信息輸出路徑(也就是都輸出在一起)

————————————————
版權聲明:本文為CSDN博主「warmj」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/fly4869/java/article/details/71123823