这里是 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/