Bash使用
使用 printf
列印包含 %
百分號的變數會導致“bash: printf: `p’: invalid format character”
我想用來
printf
列印一個變數。此變數可能包含%
百分號。最小的例子:
$ TEST="contains % percent" $ echo "${TEST}" contains % percent $ printf "${TEST}\n" bash: printf: `p': invalid format character contains $
(
echo
提供所需的輸出。)
printf
以正常形式使用:printf '%s\n' "${TEST}"
來自
man printf
:SYNOPSIS printf FORMAT [ARGUMENT]...
切勿將變數傳遞給 FORMAT 字元串,因為它可能會導致錯誤和安全漏洞**。**
順便提一句:
如果您想將
%
符號作為 FORMAT 的一部分,則需要輸入%%
,例如:$ printf '%d%%\n' 100 100%
您永遠不應該將變數內容放在給定的格式字元串中
printf
。改用這個:printf '%s\n' "${TEST}"