如何在shell脚本中接受日期时间组合?

苏拉杰

我想接受通过用户传递参数的日期时间值,并想在 shell 脚本中验证它。我怎么能做到这一点,我尝试过以下方式但失败了:

./program.sh 12-10:12:11     (In this 12 is date and other is time)

我将此作为参数传递并在 shell 脚本中接受它

dtime=$1

if ! [ "`date '+%d-%H:%M:%S' -d $dtime 2>/dev/null`" = "$dtime" ]
then
echo $dtime is NOT a valid date format, use the d-H:M:S format
exit 0
fi

echo $dtime

但它显示的日期无效。

可能

问题是提供给datecommand的格式只控制输出,而不是输入(通过--date选项传递)。需要提供一些date可以理解的格式例如,可以手动用空格替换输入中的破折号,在当前年份/月份之前添加并使用此修改后的字符串进行测试:

#!/usr/bin/env bash

#date/time string is passed as first argument
dtime=$1

#replace first occurrence of - in $dtime with space
#and prepend the current year/month/
#This will for example
#transform the input "12-10:12:11" to "2017/03/12 10:12:11", i.e.,
#into a format which `date` understands. The reason for this is
#to provide complete date specification, otherwise `date`
#would complain that the date is invalid.  
s=$(date +'%Y/%m/')${dtime/-/ }

#feed the transformed input obtained in previous step to the
#`date` command and print the output in the required '%d-%H:%M:%S' format
x=$(date +'%d-%H:%M:%S' --date="$s" 2> /dev/null)

#finally, check if this formatted value equals the original input or not
if [ "${x}" != "${dtime}" ]
then
    echo "$dtime is NOT a valid date format, use the d-H:M:S format"
    exit 0
fi

echo $dtime

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 unix shell 脚本中为日期添加时间?

来自分类Dev

如何在Shell脚本中生成顺序日期/时间?

来自分类Dev

如何在Shell脚本中更改文件中的日期格式?

来自分类Dev

如何在shell脚本中打印上次登录时间?

来自分类Dev

如何在shell脚本中接受带引号的句子作为参数

来自分类Dev

如何在Shell脚本中以%Y%m%d格式打印两个日期之间的日期?

来自分类Dev

如何在Mac上的R中组合时间和日期变量

来自分类Dev

在特定的日期时间之后,如何在Python脚本中过滤SOQL查询?

来自分类Dev

如何在shell脚本中交换时间和CPU使用率

来自分类Dev

如何在Shell脚本中运行Shell脚本

来自分类Dev

如何在Shell脚本中列出每个星期一和星期四的日期?

来自分类Dev

如何在Linux Shell脚本或python中找出最后一个星期六的日期?

来自分类Dev

如何在目录中找到最新的日期文件夹,然后在Shell脚本中构造命令?

来自分类Dev

如何在shell脚本中获取上一个日期的数据?

来自分类Dev

如何在带有gnome-shell的面板中显示时间旁边的日期?

来自分类Dev

如何在Zsh Shell中查看历史记录命令的日期时间戳

来自分类Dev

如何在带有gnome-shell的面板中显示时间旁边的日期?

来自分类Dev

如何在Bash脚本中增加日期

来自分类Dev

如何在某个日期后设置 Python 脚本的到期时间

来自分类Dev

如何使用Shell脚本为Jekyll网站获得可接受的最后修改时间戳?

来自分类Dev

如何在SQLite中存储日期时间

来自分类Dev

如何在angularjs中检查日期时间?

来自分类Dev

如何在C中检查日期时间

来自分类Dev

如何在python中操作日期时间?

来自分类Dev

如何在Shell脚本中运行别名?

来自分类Dev

如何在Shell脚本中更改PATH?

来自分类Dev

如何在shell脚本中打印$?

来自分类Dev

如何在Shell脚本中运行SQL

来自分类Dev

如何在Jenkinsfile中执行Shell脚本?

Related 相关文章

  1. 1

    如何在 unix shell 脚本中为日期添加时间?

  2. 2

    如何在Shell脚本中生成顺序日期/时间?

  3. 3

    如何在Shell脚本中更改文件中的日期格式?

  4. 4

    如何在shell脚本中打印上次登录时间?

  5. 5

    如何在shell脚本中接受带引号的句子作为参数

  6. 6

    如何在Shell脚本中以%Y%m%d格式打印两个日期之间的日期?

  7. 7

    如何在Mac上的R中组合时间和日期变量

  8. 8

    在特定的日期时间之后,如何在Python脚本中过滤SOQL查询?

  9. 9

    如何在shell脚本中交换时间和CPU使用率

  10. 10

    如何在Shell脚本中运行Shell脚本

  11. 11

    如何在Shell脚本中列出每个星期一和星期四的日期?

  12. 12

    如何在Linux Shell脚本或python中找出最后一个星期六的日期?

  13. 13

    如何在目录中找到最新的日期文件夹,然后在Shell脚本中构造命令?

  14. 14

    如何在shell脚本中获取上一个日期的数据?

  15. 15

    如何在带有gnome-shell的面板中显示时间旁边的日期?

  16. 16

    如何在Zsh Shell中查看历史记录命令的日期时间戳

  17. 17

    如何在带有gnome-shell的面板中显示时间旁边的日期?

  18. 18

    如何在Bash脚本中增加日期

  19. 19

    如何在某个日期后设置 Python 脚本的到期时间

  20. 20

    如何使用Shell脚本为Jekyll网站获得可接受的最后修改时间戳?

  21. 21

    如何在SQLite中存储日期时间

  22. 22

    如何在angularjs中检查日期时间?

  23. 23

    如何在C中检查日期时间

  24. 24

    如何在python中操作日期时间?

  25. 25

    如何在Shell脚本中运行别名?

  26. 26

    如何在Shell脚本中更改PATH?

  27. 27

    如何在shell脚本中打印$?

  28. 28

    如何在Shell脚本中运行SQL

  29. 29

    如何在Jenkinsfile中执行Shell脚本?

热门标签

归档