Shell cmd"date"到底没有新行

nov*_*ce3 24 shell newline

我想使用date命令输出一行日期,但它以"\n"结束,我不需要它,目前,我使用:

echo -n `date +"[%m-%d %H:%M:%S]"`
Run Code Online (Sandbox Code Playgroud)

要么

date +"[%m-%d %H:%M:%S]"|tr -d "\n"
Run Code Online (Sandbox Code Playgroud)

"date"是否有任何内置参数可以做到这一点?

gj1*_*j13 15

不,没有.你需要另一个命令echo -n,printf或者tr.您可以将一个脚本放在PATH中的某个位置(例如/ usr/bin /)并使其可执行chmod +x /usr/bin/mydate

脚本:

#!/bin/sh
echo -n `date +"[%m-%d %H:%M:%S]"`
Run Code Online (Sandbox Code Playgroud)

或使用别名.

alias mydate="echo -n `date +"[%m-%d %H:%M:%S]"`"
Run Code Online (Sandbox Code Playgroud)


小智 12

你可以使用printf.它不添加新的线符号:

$ printf `date "+%d.%m.%Y"`
22.01.2016$
Run Code Online (Sandbox Code Playgroud)

  • 您应该更喜欢为 printf 使用格式字符串:`printf '%s' "$(date "+%d.%m.%Y")"` (6认同)

rad*_*ech 6

Bash printf不需要日期才能工作:

printf '%(%m-%d %H:%M:%S)T'
Run Code Online (Sandbox Code Playgroud)

将输出当前时间而不带换行符。