Необходимо проверить выходной сигнал команды останова:
stop(){
screen -S vpn -X quit >/dev/null 2>&1
if [ "$?" == 0 ]; then
echo "VPN Connection Closed Successfully"
else
echo "There's No Active VPN Connection to stop it."
fi
pids=( $(pgrep -f ovpn) )
for pid in "${pids[@]}"; do
if [[ $pid != $$ ]]; then
kill "$pid"
fi
done
}
Bash сохранит сигнал выхода последней выполненной команды в переменной $?
. По стандарту любой выходной сигнал со значением 0
считается успешным, а все остальное считается неудачным.
РЕДАКТИРОВАТЬ :Я сделал небольшую опечатку и изменил порядок редиректора >&
.