fin*_*oot 19 bash echo escape-characters printf variable
我想用来printf
打印一个变量。此变量可能包含%
百分号。
最小的例子:
$ TEST="contains % percent"
$ echo "${TEST}"
contains % percent
$ printf "${TEST}\n"
bash: printf: `p': invalid format character
contains $
Run Code Online (Sandbox Code Playgroud)
(echo
提供所需的输出。)
pLu*_*umo 37
使用printf
以正常形式:
printf '%s\n' "${TEST}"
Run Code Online (Sandbox Code Playgroud)
来自man printf
:
Run Code Online (Sandbox Code Playgroud)SYNOPSIS printf FORMAT [ARGUMENT]...
你应该永远不会传递给格式字符串变量,因为它可能会导致错误和安全漏洞。
顺便提一句:
如果您想将%
签名作为 FORMAT 的一部分,则需要输入%%
,例如:
$ printf '%d%%\n' 100
100%
Run Code Online (Sandbox Code Playgroud)
Ste*_*itt 13
你永远不应该把变量内容放在给定的格式字符串中printf
。改用这个:
printf '%s\n' "${TEST}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17910 次 |
最近记录: |