Wszystko, Mam aplikację, w której użytkownik pobiera spakowany folder, który rozpakowuje skrypt powłoki, a następnie zmienia nazwę do przetwarzania. Spakowany folder zawsze będzie miał następującą konwencję nazewnictwa: „rXXXXX_CityName.info.zip” . Folder w pliku zip ma nazwę „CityName.info” Gdy skrypt powłoki rozpakuje plik zip, dopisze „rXXXXX_” do nazwy folderu, aby utworzyć folder o nazwie „rXXXXX_CityName.info” . Przed rozpakowaniem skrypt powłoki sprawdza, czy wywołano folder „rXXXXX_CityName.info” istnieje i usuwa je, jeśli tak. Oto kod:
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
Chcę wiedzieć, czy ten kod nie pozostawia miejsca na błędy? Czy mam rację zakładając, że powyższy kod wykona się sekwencyjnie (tzn. Czeka na zakończenie każdego polecenia, zanim przejdzie do następnego)?
źródło