【问题标题】:bash - extract day of week of variablebash - 提取变量的星期几
【发布时间】:2011-12-06 11:08:08
【问题描述】:

从存储的日期变量中提取星期几的语法是什么? dateinfile 格式始终为 [alphanum]_YYYYMMDD

在这个伪代码示例中,尝试让dayofweek 存储星期六:

#! /bin/bash 

dateinfile="P_20090530"
dayofweek="$dateinfile -u +%A"

【问题讨论】:

    标签: linux bash shell unix scripting


    【解决方案1】:
    [me@home]$ date --date=${dateinfile#?_} "+%A"
    Saturday
    

    或者,按照您的要求:

    [me@home]$ dayofweek=$(date --date=${dateinfile#?_} "+%A")
    [me@home]$ echo $dayofweek
    Saturday
    

    【讨论】:

    • dayofweek=date --date=${dateinfile#?_} "+%A" 但它给出了错误的替换错误
    • @toop 当您在脚本中echo $BASH_VERSION 时,您会得到什么?
    • 4.0.17(1)-发布。编辑后的新错误:`dayofweek=$' 意外
    • 这很奇怪。它should work。您是在脚本中还是在命令行中echo $BASH_VERSION?从您的脚本中尝试一下。
    【解决方案2】:
    date -d $(echo $dateinfile | cut -f2 -d_) -u +%A
    

    内部表达式将20090530P_20090530 分开,外部表达式从该日期提取星期几

    【讨论】:

      【解决方案3】:

      我最近需要相同的输出并用谷歌搜索,但我遇到了同样的问题,说明 Bad Substition 错误。

      然后我阅读了日期手册并将我的版本编成如下:

      #! /bin/sh
      dateinfile="P_20090530"
      dayofweek=`date --reference $dateinfile +%A`
      echo $dayofweek
      

      【讨论】:

        猜你喜欢
        • 2014-05-22
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 1970-01-01
        • 1970-01-01
        • 2021-12-01
        • 1970-01-01
        相关资源
        最近更新 更多