Все, у меня есть приложение, в котором пользователь выбирает заархивированную папку, которую сценарий оболочки распаковывает, а затем переименовывает для обработки. У заархивированной папки всегда будет следующее соглашение об именах: «rXXXXX_CityName.info.zip». Папка внутри zip-файла называется «CityName.info». Когда сценарий оболочки разархивирует zip-файл, он добавит "rXXXXX_" к имени папки, чтобы создать папку с именем «rXXXXX_CityName.info». Перед распаковкой сценарий оболочки проверяет, существует ли папка с именем «rXXXXX_CityName.info» , и удаляет ее, если она существует. Вот код:
THEZIPFILE="r12345_Boston.info.zip"
DIR="r12345_Boston.info"
if [ -d "$DIR" ]; then
rm -rf "$DIR"
sleep 1
fi
if [ ! -d "$DIR" ]; then
unzip -o "$THEZIPFILE" > /dev/null &
zpid=$!
wait $zpid
EXIT_STATUS=$?
if [ $EXIT_STATUS -eq 0 ]; then
rm -rf __MACOSX
# Do Some processing....
fi
echo $EXIT_STATUS
exit
else
echo "-1"
exit
fi
Я хочу знать, оставляет ли этот код место для ошибок? Прав ли я, предполагая, что приведенный выше код будет выполняться последовательно (т.е. дождаться завершения каждой команды, прежде чем перейти к следующей)?