【问题标题】:need linux equivalent to windows "echo %date% %time% %COMPUTERNAME%"需要linux相当于windows "echo %date% %time% %COMPUTERNAME%"
【发布时间】: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


    【解决方案1】:

    使用date 命令,格式如下:

    date +"%m/%d/%Y %H:%M:%S $HOSTNAME"
    

    要获得百分之一秒,您可能需要像这样进行一些文本处理:

    DATE=date +'%m/%d/%Y %H:%M:%S.%N'
    DATE=${DATE%???????}
    DATE="$DATE $HOSTNAME"
    

    这是因为 date 只提供秒、纳秒,而两者之间什么都没有!

    【讨论】:

    • 或者你可以简单地输入“日期”,给你操作系统的语言环境定义的格式。
    【解决方案2】:

    你可以这样做:

    dt=$(date)
    echo $dt $HOSTNAME
    

    【讨论】:

      【解决方案3】:
      echo $(date '+%Y %b %d %H:%M') 你的输出 $HOSTNAME

      输出:

      2013 年 11 月 1 日 09:11 你的输出 PEGASUS-SYDNEY-CL2

      【讨论】:

        【解决方案4】:

        也可以为此使用反引号字符:

        echo `date` `hostname`
        

        或使用(本地化)日期格式:

        echo `date +"%a %x %X"` `hostname`
        

        【讨论】:

          【解决方案5】:

          作为补充:百分比字符不用于在任何 Linux shell 上引用变量。您应该为此使用美元符号。

          您可能应该阅读 Bash 简介 (here)

          【讨论】:

            【解决方案6】:

            有几个人根据date 提供了答案,但您的问题需要简短的日期名称(尽管我的英国 Win 7 安装没有提供您指定的 ECHO 命令),但没有人提供(到目前为止)解决。

            要得到这个,您可能需要在格式字符串中包含%a

            date "+%a %m/%d/%Y %H:%M:%S $HOSTNAME"
            

            【讨论】:

              【解决方案7】:

              在 Linux 中,有 date 命令。如果您不喜欢默认格式,可以对其进行修改。查看 date

              的手册页

              对于主机名,您可以使用 hostname 命令或 $HOSTNAME 环境变量(如果已设置)。

              有了系统名,就更复杂了。您可以使用 uname -a,有时它包含操作系统名称。一些发行版也有 lsb-release,但不是全部。

              【讨论】:

                猜你喜欢
                • 2018-05-05
                • 1970-01-01
                • 2012-10-28
                • 1970-01-01
                • 1970-01-01
                • 2023-03-09
                • 1970-01-01
                • 2015-07-15
                • 2013-07-01
                相关资源
                最近更新 更多