Привет, я в курсе, что мы можем проверить статус предыдущей команды по $? следующий сценарий не работает для меня

ssh $USER@$HOST bash -c "'
echo "Preparing list of files to be transferred...."
rsync <something>
if [ $? -ne 0 ]; then
    echo "remote error occurred"
    exit 1
fi
echo "end"
'"
if [ $? -ne 0 ]; then
    echo "remote error occurred"
    exit 1
else
    echo "remote did not return any error"
    exit 0
fi

вывод, который я получаю

Preparing list of files to be transferred....
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
end
remote did not return any error

Любое предложение о том, как обрабатывать ошибки в SSH для нескольких команд?

1 ответ1

0

Я думаю, я нашел ответ

rsync <something>
if [ \$? -ne 0 ]; then
    echo "remote error occurred"
    exit 1
fi

Добавление обратной косой черты делает свое дело.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .