錯誤代碼:
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"
例外狀況:
無