Эта программа проверяет наличие определенного названия книги путем сопоставления ввода пользователем названия книги и автора книги.
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, кто-нибудь знает, как вернуть отрицательные значения