SC2126 建議使用 grep -c代替 grep | wc

錯誤代碼:

grep foo | wc -l

正確代碼:

grep -c foo

對於多個文件

錯誤代碼:

grep foo * .log | wc -l

正確代碼:

cat * .log | grep foo -c

修正原因:

這單純是一種程式編碼上風格問題,因 grep 可以直接進行計算無須再次利用管道方式傳送至 wc 進行運算。

檢查有無符合的匹配項目,在沒有符合的項目時(參數值==0),此情形下使用 grep -q 甚至更加清晰及高效率,例如下列示範:

if grep -q pattern file; then
   echo "此文件有符合的項目"
fi

當如果執行 foo | grep bar | wc -l,在正常情形下無法顯示 grep 執行時的異常訊息,並且始終顯示執行成功,錯誤排除時難以查找問題。如果替換成 foo | grep -c bar 則在沒有匹配項目時退出會顯示 0 。

例外狀況:

如果在特定情形下 wc 指令可以使結果更清楚,就可以忽略此寫法。

參考來源:

SC2028 echo 不會轉義特殊字元應使用 printf。

錯誤代碼:

echo "Name:\t$value"

正確代碼:

printf 'Name:\t%s\n' "$value"

修正原因:

特殊字元像是 \t 或是 \n 並不會被 echo 轉義成特殊字元,而會如實的列印出字面上的 \t 及 \n。但 printf 會確實的解析此類型的特殊字元,應改變使用習慣。

部分Linux 支援像是使用 echo -e ‘\t’ 和 echo$’\t’。但為了共通性應該避免使用,

printf 確實會擴展這些序列,應改為使用。如果在 VS code 中撰寫shell 腳本開頭宣告#!/bin/sh , ShellCheck 套件也會發出此警告。

如果您確實需要字面反斜線-t,請使用

echo "\\t"

例外狀況:

參考來源:

谷歌公開2017年阻止2.54 Tbps DDoS攻擊,這是迄今為止已知的最大攻擊

Google 安全工程師今天在部落格中發布一篇文章 Exponential growth in DDoS attack volumes 內容公布了2017年出現已知最大DDOS 攻擊及說明了DDOS攻擊種類,提醒大家目前網路攻擊成長不斷攀升,該如何考量各種層面的問題及規劃。

SSL/TLS 憑證最長時間簽核從 2020/09/01 起縮短成398天

從2020/09/01起 SSL 證書壽命從過去的27個月(825天)縮短至398天,主要為了提高憑證安全性,減少被盜取或偽造的證書進行網路釣魚或是惡意軟體攻擊的時間。對於移動裝置用戶因性能關係無法主動驗證證書狀態,如果憑證已經被吊銷也不會向用戶發出任何警告,達到進一步保護。

Fotojet 免費線上照片編輯器,照片拼圖

不管是工作或是私人需要快速編輯圖片,在沒有安裝 Photoshop 又想做出有點質感的成品,網路上有很多類似的服務,大多都需要註冊才可以開始使用編輯功能,或到完成作品後才說需要註冊才能下載。而 Fotojet 超級佛心而且標示清楚,可直接使用圖片編輯的功能,還提供豐富的範本及資源超快速就可以出產成品。

返回頂端