Сначала к терминологии: то, что вы показываете в своем примере (check
), это не скрипт, а функция. Он становится скриптом, если вы добавите фактический вызов к check
.
Но к вашему правильному вопросу: вам нужно как-то определить для вызывающего абонента, успешны вы или нет. Это может быть сделано, если ваша функция вернет код завершения. Это делается с помощью оператора return
. Соглашение состоит в том, что для возврата возвращается 0, а в случае ошибки - от 1 до 127.
Следовательно, если вы обнаружите ошибку, сделайте
return 1
в своем скрипте. Если все идет хорошо, выйдите из него по
return 0
Если вы придерживаетесь этого соглашения, вы действительно можете использовать выражение if
, которое вы имели в виду:
if check ARGUMENTS
then
.... # check function successful
else
.... # check function not successful
fi
тот же принцип применим не только к функциям, но и к сценариям, с тем отличием, что с помощью сценариев вы сообщаете код выхода не с помощью return
, а с помощью оператора exit
, то есть
exit 0 # Success
exit 1 # Failure