Avoiding date using printf
suggest changeVersions
[{“Name”:“4.2”,“GroupName”:null},{“Name”:“4.3”,“GroupName”:null},{“Name”:“4.4”,“GroupName”:null}]
Introduction
In Bash 4.2, a shell built-in time conversion for printf
was introduced: the format specification %(datefmt)T
makes printf
output the date-time string corresponding to the format string datefmt
as understood by strftime
.
Syntax
- printf ‘%(dateFmt)T’ # dateFmt can be any format string that strftime recognizes
- printf ‘%(dateFmt)T’ -1 # -1 represents the current time (default for no argument)
- printf ‘%(dateFmt)T’ -2 # -2 represents the time the shell was invoked
Remarks
Using printf -v foo '%(...)T'
is identical to foo=$(date +'...')
and saves a fork for the call to the external program date
.
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents