2012-09-27 19 views
0

嗨,我是新来的bash脚本,但不明白为什么我得到命令未找到错误,当我尝试分配给本地变量的结果这个函数调用参数20120920 5在bash函数调用找不到的命令

​​

所以脚本名是ndaysago,我第一次调用脚本。 ndaysago然后分配是这样的值:

newdate= nDaysAgo 20120910 5 

它打印:20120905:找不到命令

含义的日期执行制作,但随后尝试使用输出作为命令,那不是我会期望。

我也尝试过像这样的函数内分配新的值给一个变量:分配变量时

#!/bin/bash 

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

,但仍然没有,MMMMMM

+0

我无法重现你的错误! – turtledove

+0

检查是否有其他错误! – turtledove

+0

我假设你的原始代码实际上是'newdate = nDaysAgo 20120910 5',因为'='后面的空格没有错误,你得到正确的值_printed_,而'newdate'中没有任何错误。 – lanzz

回答

4

空间不在身边=允许。要调用函数,您应该使用$(...)语法,该语法被称为command substitution

更改为:

newdate=$(nDaysAgo 20120910 5) 
+0

newdate = $(nDaysAgo 20120910 5)20120905:找不到指令 – JBoy

+2

它适用于我。你删除了空间吗?使用我写的东西。 – dogbane

+0

之后你会用'newdate'做些什么?它可能在其他地方失败。 – dogbane