tar возвращает статус успеха, когда диск заполнен - PullRequest
2 голосов
/ 16 мая 2019

Я хочу поймать код ошибки при использовании tar для распаковки архива.

Когда я проверяю состояние смолы после исчерпания свободного места; бросает успешный статус.

if sudo tar -xf $ARTIFACT_DIR/Deployment_$MODEL_RELEASE.tar.gz --directory $TEMP_DIRECTORY
then
   echo 'Success Decompressing!'
else
   echo 'Failure Decompressing file!'
   exit
fi

Задание bash продолжается, так как оно находит состояние 0.

1 Ответ

0 голосов
/ 19 мая 2019

Вы можете достичь с помощью $ ?. (выход из состояния предыдущей команды запуска)

Давайте возьмем пример, чтобы прояснить ситуацию.

Пример 1: (команда выполнена успешно)

# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

# echo $?
0

Пример 2: (команда не выполнена успешно или нет вывода.)

# cat /etc/passwd | grep boot

# echo $?
1

Найти исправленный ниже скрипт.

#!/bin/bash
sudo tar -xf $ARTIFACT_DIR/Deployment_$MODEL_RELEASE.tar.gz --directory $TEMP_DIRECTORY
   if [ $? -eq 0 ] 
then
   echo 'Success Decompressing!'
else
   echo 'Failure Decompressing file!'
   exit
fi
...