【问题标题】:Environment variable as date STRING? [duplicate]环境变量作为日期字符串? [复制]
【发布时间】:2017-02-02 16:21:47
【问题描述】:

$ 日期--版本 日期(GNU coreutils)8.25

当我将带引号的字符串传递给日期时,到 epoch 的转换工作正常,但是当带引号的字符串在环境变量中时,就没有乐趣了。

$ date --date "09/25/2016 12:31:52 AM" +%s
1474781512

$ echo $LAT
"09/25/2016 12:31:52 AM"

$ date --date $LAT +%s
date: extra operand ‘AM"’

$ date --date "$LAT" +%s
date: invalid date ‘"09/25/2016 12:31:52 AM"’

$ date --date '$LAT' +%s
date: invalid date ‘$LAT’

我做错了什么? (这不是家庭作业。)

谢谢。

【问题讨论】:

    标签: bash environment-variables


    【解决方案1】:

    扩展变量 ($LAT) 值周围有文字双引号。

    要么在声明时去掉双引号,要么在运行时使用参数扩展去掉:

    date --date "${LAT//\"/}" '+%s'
    

    【讨论】:

    • LAT 的(未显示)来源放在双引号中。在运行时删除它们就可以了。谢谢。
    【解决方案2】:

    您的变量中有引号,这导致了问题。你可以在这里看到它:

    $ echo $LAT
    "09/25/2016 12:31:52 AM"
    

    如果您的变量只有日期,则不会显示引号。

    【讨论】:

    • LAT 的来源有双引号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    • 2014-08-16
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    相关资源
    最近更新 更多