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

Ada*_*son 0 bash shell date subshell

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

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

d=$(date)
Run Code Online (Sandbox Code Playgroud)

gni*_*urf 5

使用 Bash?4.2,您可以使用printf以下%(datefmt)T格式:

printf '%(%c)T\n' -1
Run Code Online (Sandbox Code Playgroud)

-1现在的意思

请参阅条目中的 Bash 参考printf

把它放在一个变量中(因此不使用子shell):

printf -v d '%(%c)T' -1
echo "$d"
Run Code Online (Sandbox Code Playgroud)