0

嗨,我是 bash 脚本的新手,但不明白为什么当我尝试使用参数 20120920 5 将此函数调用的结果分配给局部变量时,我得到命令未找到错误。

    #!/bin/bash

function nDaysAgo () #date # daysago
{
 date -d "${1} - ${2} days" +%Y%m%d;
}

所以脚本名称是 ndaysago,我首先使用 . ndaysago,然后像这样分配值:

newdate= nDaysAgo 20120910 5

它打印:20120905:找不到命令

这意味着执行日期但随后尝试将输出用作命令,这不是我所期望的。

我还尝试将新值分配给函数中的变量,如下所示:

#!/bin/bash

function nDaysAgo () #date # daysago
{
 var=$(date -d "${1} - ${2} days" +%Y%m%d)
}

但仍然没有,嗯嗯嗯

4

1 回答 1

4

=分配变量时,周围不允许有空格。要调用函数,您应该使用 $(...)称为命令替换的语法。

改成:

newdate=$(nDaysAgo 20120910 5)
于 2012-09-27T08:05:27.867 回答