Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 我如何在Zsh下获得两个日期之间的差异?_Shell_Date_Command_Zsh_Difference - Fatal编程技术网

Shell 我如何在Zsh下获得两个日期之间的差异?

Shell 我如何在Zsh下获得两个日期之间的差异?,shell,date,command,zsh,difference,Shell,Date,Command,Zsh,Difference,任何人都知道如何将此命令从bash转换为zsh命令虽然bash和zsh非常不同,但它们非常相似,因此在您的情况下,相同的命令适用于这两个命令: ((DIFF=($(date +%s -d 20120203)-$(date +%s -d 20120115))/86400)) 假设您需要多次这样做,我将为此创建一个可重用的函数 将其放入名为持续时间(以天为单位)的文件中: 自动加载-Uz日历 本地起始端 日历_scandate$1 开始=$REPLY 日历_scandate$2 end=$REPL

任何人都知道如何将此命令从bash转换为zsh命令

虽然bash和zsh非常不同,但它们非常相似,因此在您的情况下,相同的命令适用于这两个命令:

((DIFF=($(date +%s -d 20120203)-$(date +%s -d 20120115))/86400))

假设您需要多次这样做,我将为此创建一个可重用的函数

  • 将其放入名为
    持续时间(以天为单位)
    的文件中:
    自动加载-Uz日历
    本地起始端
    日历_scandate$1
    开始=$REPLY
    日历_scandate$2
    end=$REPLY
    打印$((结束-开始)/(24*60*60)))
    
  • .zshrc
    文件中,
    自动加载功能。例如,如果将函数文件保存在目录
    ~/functions
    #自动加载~/functions目录中的所有函数。
    自动加载-Uz~/functions/*~*.zwc
    #排除.zwc文件(编译函数时生成)。
    
  • 重新启动终端或外壳
  • 现在您可以像这样使用上述功能:

    %持续时间(以天为单位)2012-01-15 2012-02-03
    19
    %
    

    如果要在可执行脚本中使用此函数,请记住在脚本中自动加载它。

    发布的bash命令无效,您可以看到,如果只是将发布的内容复制并粘贴到bash shell中。你真的在问如何将一个错误的bash命令转换成一个错误的zsh命令吗?这是和以前一样的错误命令。它给了我一个bash:let:DIFF=(日期+%s-d 20120203日期+%s-d 20120115)/86400:语法错误:应为操作数(错误标记为“%s-d 20120203日期+%s-d 20120115)/86400)。请上传一个屏幕截图,这样我们就可以看到这个命令在你的bash中的作用。你链接到的命令与你发布的命令不同……这是因为那些包含日期的符号