Как проверить, правильно ли выполнена команда оболочки? - PullRequest
1 голос
/ 22 сентября 2010
#!/bin/sh
tar=$1
if [ -f $tar ]
then
    tar xvf $tar
else
    exit 1
fi

... <more code>

Мне нужно подтверждение, что tar действительно произошел успешно, в противном случае прервите выполнение скрипта.

Извлечение файла tar может не пройти, потому что

  • someпроблемы с tar командой
  • проблемы с доступом $tar

У утилит Linux есть возвращаемые значения?Как мне их здесь использовать?

Ответы [ 2 ]

5 голосов
/ 22 сентября 2010

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

tar xvf $tar
[ $? -ne 0 ] && exit 1

Подробнее здесь .

3 голосов
/ 22 сентября 2010

Это

tar xvf "$tar" || exit 1

или это (если вы хотите проверить, существует ли файл самостоятельно)

[ -f "$tar" ] && tar xvf "$tar" || exit 1
...