Функция оболочки должна иметь возможность возвращать
значение, которое вам нравится:
checktype() {
if [ ! -f "$1" ] ; then
echo 'Irregular file'
return 1
fi
if [ ! -r "$1" ]; then
echo 'Unreadable file'
return 2
fi
return 0
}
$ checktype /dev/stdin ; echo $?
Irregular file
1
Кроме того, test
- ужасное имя для псевдонима или функции, поскольку это стандартный ( встроенная) утилита.
Я понимаю, что псевдоним - ужасный выбор, но в настоящее время он требуется профессору.
Хорошо, это немного меняет ситуацию. Я предлагаю показать профессору более подходящее решение и объяснить, почему простое решение не работает.
Но в случае, если это не сработает, и вы действительно должны использовать псевдоним, учтите, что возвращаемое значение на самом деле является просто возвращаемым значением последней выполненной команды. У вас должна быть возможность настроить что-то, что возвращает желаемое значение ...
(Если это домашнее задание, я не думаю, что было бы справедливо сразу давать полное решение. Спойлеры ниже.)
Подсказка: Вы уже использовали команду, возвращающую произвольное значение.