Shell cmd“date”结尾无新行

vbopmzt1  于 2023-06-24  发布在  Shell
关注(0)|答案(5)|浏览(126)

我想用date命令输出一行日期,但它的结尾是“\n”,我不需要它,目前,我用途:

echo -n `date +"[%m-%d %H:%M:%S]"`

date +"[%m-%d %H:%M:%S]"|tr -d "\n"

有没有内置的“date”参数来做到这一点?

uqxowvwt

uqxowvwt1#

不没有您需要另一个命令,如echo -nprintftr。你可以把一个脚本放在你的路径的某个地方(例如。/usr/bin/),并使其可以用chmod +x /usr/bin/mydate执行
脚本:

#!/bin/sh
echo -n `date +"[%m-%d %H:%M:%S]"`

或使用别名。

alias mydate="echo -n `date +"[%m-%d %H:%M:%S]"`"
sq1bmfud

sq1bmfud2#

Bashprintf不需要date即可工作:

printf '%(%m-%d %H:%M:%S)T'

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

r6vfmomb

r6vfmomb3#

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

$ printf `date "+%d.%m.%Y"`
22.01.2016$
8hhllhi2

8hhllhi24#

您可能希望用某种形式的空格替换换行符,以便输出不会一起运行。
可用于监视工作空间峰值大小的完整示例:

nohup watch -t -n 60 "(date '+%F/%H:%M:%S' | tr '\n' '\t'; du -sh /folder/to/monitor/) >> workspace.log" &

不要忘记杀死它,因为文件会无限增长。

juud5qan

juud5qan5#

我猜你想在每一行的日期后面加上一些东西。你可以用其他方法来代替没有EOL的日期。在date命令中,你可以使用$()或反引号``来添加任何其他命令的输出。最后的输出是相同的,日期,然后在每一行的东西。
例如:

date "+%F %T $(echo 123)"

将在同一行中打印日期和123。

相关问题