我不知道我的函数有什么问题;它没有正确返回值。Bash函数没有正确返回值
function validate_directory_isempty {
retval=""
NumOfFiles=`ls -l $input | egrep -c "^-"`
if [ "$NumOfFiles" == "0" ];then
retval=true
else
retval=false
fi
echo $retval
}
retval=$(validate_directory_isempty /opt/InstallationManager)
echo "retval : " $retval
if [ "$retval" == "true" ]; then
echo ""
echo "Installing Installation Manager"
# Install_IM
else
echo ""
echo "DIRECTORY is not empty. Please make sure install location $DIRECTORY is empty before installing PRODUCT"
fi
请记住以更正统的方式缩进您的代码。起初你的代码是不可读的。突出显示您的代码并使用编辑框上方的** {} **按钮将其缩进4个空格,但函数的主体不应缩进30多个空格。 – 2014-09-24 00:01:39
变量'input'没有在'validate_directory_isempty'中定义 – linuxfan 2014-09-24 00:02:53
正如@linuxfan指出的那样,'$ input'没有在函数中定义。该函数的参数在'$ 1'等;你可能想用'“$ @”'替换'$ input'。还要注意''函数'符号不是首选; POSIX将使用'validate_directory_isempty(){...代码作为固定的...}'。 – 2014-09-24 00:04:22