weird shell script error: недопустимая опция return: use: return [n]

Эта программа проверяет наличие определенного названия книги путем сопоставления ввода пользователем названия книги и автора книги.

function removebook_option()
{
    echo -n "Title : "
    read title_input2

    echo -n "Author: "
    read author_input2

    checkexist $title_input2 $author_input2
    error=$?
    echo "$error"

    if [ $error != -1 ];then
        #removebook
            echo "New book title $title_input removed successfully"
        else
        echo "Book does not exist"


    fi 

}

function checkexist()
{  
   counter=0

   for x in ${title[@]} 
   do

    for y in ${author[@]} 
    do
        if [  $x == $1 ] && [ $y == $2 ];
        then
            error=$counter 
                return "$error"
        fi
    done
    counter=$((counter+1))
   done

   error=-1
   return "$error"

}

title=(foo1 foo2)
author=(bar1 bar2)
removebook_option

Я получаю очень странную ошибку, где function checkexist() возвращает 2 вместо -1, когда нет совпадения, которое происходит при возврате значения error=-1

строки 43 : return: -1: неверная опция return: use: return [n]

EDIT: по неизвестным причинам я могу только возвращать значения от 0 до 255, кто-нибудь знает, как вернуть отрицательные значения [ ! d4]

Вы можете попытаться ввести неверные данные, чтобы увидеть странную ошибку

EDIT: по неизвестным причинам я могу только возвращать значения от 0 до 255, кто-нибудь знает, как вернуть отрицательные значения

1
задан 10 January 2014 в 16:29

0 ответов

Другие вопросы по тегам:

Похожие вопросы: