【发布时间】:2011-04-16 20:10:05
【问题描述】:
在 Linux 中,
"echo %date% %time% %COMPUTERNAME%"
返回
%date% %time% %COMPUTERNAME%
不是
Fri 09/24/2010 10:46:25.42 WXP2010043001
就像 Windows 一样。 我需要能够为我正在设置的日志执行此操作。
【问题讨论】:
标签: linux environment-variables
在 Linux 中,
"echo %date% %time% %COMPUTERNAME%"
返回
%date% %time% %COMPUTERNAME%
不是
Fri 09/24/2010 10:46:25.42 WXP2010043001
就像 Windows 一样。 我需要能够为我正在设置的日志执行此操作。
【问题讨论】:
标签: linux environment-variables
使用date 命令,格式如下:
date +"%m/%d/%Y %H:%M:%S $HOSTNAME"
要获得百分之一秒,您可能需要像这样进行一些文本处理:
DATE=date +'%m/%d/%Y %H:%M:%S.%N'
DATE=${DATE%???????}
DATE="$DATE $HOSTNAME"
这是因为 date 只提供秒、纳秒,而两者之间什么都没有!
【讨论】:
你可以这样做:
dt=$(date)
echo $dt $HOSTNAME
【讨论】:
输出:
2013 年 11 月 1 日 09:11 你的输出 PEGASUS-SYDNEY-CL2【讨论】:
也可以为此使用反引号字符:
echo `date` `hostname`
或使用(本地化)日期格式:
echo `date +"%a %x %X"` `hostname`
【讨论】:
作为补充:百分比字符不用于在任何 Linux shell 上引用变量。您应该为此使用美元符号。
您可能应该阅读 Bash 简介 (here)
【讨论】:
有几个人根据date 提供了答案,但您的问题需要简短的日期名称(尽管我的英国 Win 7 安装没有提供您指定的 ECHO 命令),但没有人提供(到目前为止)解决。
要得到这个,您可能需要在格式字符串中包含%a:
date "+%a %m/%d/%Y %H:%M:%S $HOSTNAME"
【讨论】:
在 Linux 中,有 date 命令。如果您不喜欢默认格式,可以对其进行修改。查看 date
的手册页对于主机名,您可以使用 hostname 命令或 $HOSTNAME 环境变量(如果已设置)。
有了系统名,就更复杂了。您可以使用 uname -a,有时它包含操作系统名称。一些发行版也有 lsb-release,但不是全部。
【讨论】: