无需打开子外壳即可获取当前时间(和日期)

Get current time (and date) WITHOUT opening a subshell

是否可以在不通过子 shell 的情况下获取当前时间(可能还有日期)?

因为如果我没记错的话,这个命令确实打开了一个子 shell?

d=$(date)

如果 Bash≥4.2,您可以使用 printf%(datefmt)T 格式:

printf '%(%c)T\n' -1

-1表示现在

The Bash reference at the printf entry

将其放入变量中(因此不使用子 shell):

printf -v d '%(%c)T' -1
echo "$d"