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"

例外狀況:

參考來源:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *