date - BASH:你如何执行 "split"日期命令?

标签 date string-formatting bash ifs

这里是 Cygwin 用户(尽管如果有合适的解决方案我会把它带到我也使用的 K/Ubuntu)。

我的 .bashrc 中有一条欢迎消息,如下所示:

SAD=(`date +%A-%B-%d-%Y`)
DUB=(`date -u +%k:%M`)
printf "Today's Date is: ${SAD}.\n"
printf "Dublin time is now ${DUB}. (24-Hour Clock)\n"

在多次尝试在上面的变量 SAD 中使用空格后,我放弃了并使用了连字符。但可以理解,我对这种创可贴解决方案并不满意。我记得,问题是每次我尝试使用带引号的空格、\s 或一些类似的转义标记,以及在 GNU 联机帮助页的适当部分中列出的 date 变量时,变量for Year 被忽略或返回错误。我不想做的是求助于 date 返回的完整字符串,而是保持上面代码中的顺序。

在我写这篇文章时,我突然想到围绕欢迎消息的这段代码设置 IFS 可能会起作用,前提是我之后将其恢复为默认值(上面出现在 68 行 .bashrc 的第 13-17 行) .但是,我不记得该怎么做,我也不确定它是否有效。

一般来说,.bashrc 文件是有效的 BASH 语法,不是吗?我的脚本肯定类似于我自己编写的或从其他来源测试的脚本。我想我所缺少的只是用于设置和取消设置此消息 block 周围的字段分隔符的代码。

毫无疑问,任何想出解决方案的人不仅会帮我一个忙,而且会帮网络上任何其他在 shell 脚本世界中迈出第一步(或第十三到第十七步)的相关新手。

BZT

最佳答案

SAD=$(date "+%A %B %d %Y")
DUB=$(date -u +%k:%M)
echo "Today's Date is: ${SAD}."
echo "Dublin time is now ${DUB}. (24-Hour Clock)"

在我的 .bash_profile 打印中

Today's Date is: Thursday February 18 2010.
Dublin time is now 12:55. (24-Hour Clock)

我想这就是你想要的。

关于date - BASH:你如何执行 "split"日期命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2288662/

相关文章:

delphi - 当我给它一个负数时,为什么 Format with '%u' 打印出错误的值?

javascript - 使用 WebApi/MVC4/Knockout 输出日期的问题

c - C中的字符串格式化

c# - 如何从按周、月、季度或年分组的随机日期列表中提取最大日期?

javascript - 如何在 Javascript 中为字符串添加斜杠?

r - 如何在 R 中的系统命令中运行 "conda ***"

bash - 将带有标题的表列中的值减 1 (bash)

java - 如何在 Java 中使用 sudo 权限执行 bash 命令?

mysql - Visual Studio 表中日期之间的 SQL 查询

laravel - 如何在 Laravel 5.4 中减去两个日期