我试图找到上个月的年份价值。以下是我的代码。 而不是打印2015年,它错误地打印为223。 可能是什么问题?
findPrvYear(){
echo "Finding Previous Year"
(
set `date +%m" "%Y`
CURMTHY=$1
CURYRY=$2
if [ $CURMTHY -eq 1 ]
then PRVMTHY=12
PRVYRY=`expr $CURYRY - 1`
else PRVMTHY=`expr $CURMTHY - 1`
PRVYRY=$CURYRY
fi
echo $PRVYRY //This is properly printing as 2015
return "$PRVYRY"
)
}
thisMonthY=$(date +%m)
thisYearY=$(date +%y)
findPrvYear $thisMonthY $thisYearY
retPrvYear=$?
echo $retPrvYear //This is wrongly printing as 223
答案 0 :(得分:1)
您需要使用$(...)
来获取该函数的输出。不是$?
,它为您提供返回代码(这是不同的东西)。所以,做一些更像这样的事情:
findPrvYear(){
echo "Finding Previous Year"
(
set `date +%m" "%Y`
CURMTHY=$1
CURYRY=$2
if [ $CURMTHY -eq 1 ]
then PRVMTHY=12
PRVYRY=`expr $CURYRY - 1`
else PRVMTHY=`expr $CURMTHY - 1`
PRVYRY=$CURYRY
fi
return "$PRVYRY"
)
}
thisMonthY=$(date +%m)
thisYearY=$(date +%y)
retPrvYear=$(findPrvYear $thisMonthY $thisYearY)