在网上的bash脚本示例中多次遇到此printf -v
之后,以及有关stackoverflow的几个问题,我在printf
联机帮助页中找不到合适的解释。
man printf
或man 3 printf
对我没有帮助。
我在哪里寻找?
答案 0 :(得分:10)
linux中存在多个printf
命令:
printf
作为已知的C函数。 (在man 3 printf
中描述)/usr/bin/printf
。 (见man printf
)printf built-in
。 (请参阅man bash
并在SHELL BUILTIN COMMANDS
部分查看相关条目)。另外,可以通过help printf
找到帮助,它将显示联机帮助页中的内置说明。要找出您确切需要的内容,请使用type <command>
找出具体使用的内容:
root@pi:~# type printf
printf is a shell builtin
所以3号是这里的解决方案:
printf [-v var] format [arguments]
The -v option causes the output to be assigned to the variable var rather than being printed to the standard output.
摘自此处:
printf [-v var] format [arguments]
Write the formatted arguments to the standard output under the control
of the format. The -v option causes the output to be assigned to the
variable var rather than being printed to the standard output.
The format is a character string which contains three types of objects:
plain characters, which are simply copied to standard output, character
escape sequences, which are converted and copied to the standard
output, and format specifications, each of which causes printing
of the next successive argument. In addition to the standard printf(1)
format specifications, printf interprets the following extensions:
%b causes printf to expand backslash escape sequences in the
corresponding argument (except that \c terminates output,
backslashes in \', \", and \? are not removed, and octal escapes
beginning with \0 may contain up to four digits).
%q causes printf to output the corresponding argument in a format that
can be reused as shell input.
%(datefmt)T
causes printf to output the date-time string resulting from using
datefmt as a format string for strftime(3). The corresponding
argument is an integer representing the number of seconds since
the epoch.
Two special argument values may be used:
-1 represents the current time, and
-2 represents the time the shell was invoked.
Arguments to non-string format specifiers are treated as
C constants, except that a leading plus or minus sign is allowed,
and if the leading character is a single or double quote,
the value is the ASCII value of the following character.
The format is reused as necessary to consume all of the arguments.
If the format requires more arguments than are supplied, the extra
format specifications behave as if a zero value or null string,
as appropriate, had been supplied.
The return value is zero on success, non-zero on failure.