我不知道我的函數有什麼問題;它沒有正確返回值。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