【发布时间】:2012-09-18 22:59:45
【问题描述】:
您好,我是 bash 脚本的新手,但不明白为什么当我尝试使用参数 20120920 5 将此函数调用的结果分配给局部变量时,会出现 command not found 错误。
#!/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)
}
还是什么都没有,mmmmmm
【问题讨论】:
-
我无法重现您的错误!
-
检查是否有其他问题!
-
我假设你的原始代码实际上是
newdate=nDaysAgo 20120910 5,因为=后面的空格没有错误,你得到正确的值打印,并且没有任何内容newdate. -
这就是我现在尝试分配值的方式:newdate=$(nDaysAgo 20120910 5)
-
@lanzz 你是对的。
newdate=nDaysAgo 20120910 5会出错,@dogbane 是正确答案!