2009-08-10 2 views
1

Im совершенно новый для сценариев Bash, но мне было приложено немного облегчения создать файл, который сжимает текстуры в формате PVR, только если файл был изменен с момента последнего запуска сценария. Heres код, который я до сих пор:Сравнение оценок временных рядов Bash


# variables 
TEXTURE_TOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/texturetool 
INPUT_DIR="/Data/Mobile" 
OUTPUT_DIR="/Data/iPhone" 
IMAGE_GREP="\(.bmp\|.png\)" 
OTHER_GREP="\.b3d$" 

echo "Starting backup of directory $INPUT_DIR to directory $OUTPUT_DIR" 

# cycle through the input directory for images we can compress 
echo "Compressing textures!" 
for i in $(ls -a "$INPUT_DIR" | grep $IMAGE_GREP ); 
    do 
     if test "$OUTPUT_DIR/$i.pvr" -nt "$INPUT_DIR/$i"; then 
     # check to see output's status 
     echo "Compressing file $i!" 

     # compress and store in output directory 
     $TEXTURE_TOOL -m -e PVRTC --bits-per-pixel-2 -o "$OUTPUT_DIR/$i.pvr" -f PVR "$INPUT_DIR/$i" 
     fi 
    done 

# cycle through the input directory for models we can export 
echo "Moving models!" 
for i in $(ls -a "$INPUT_DIR" | grep $OTHER_GREP ); 
    do 
     # check to see output's status 
     echo "Moving model file $i!" 

     # cp to output directory 
     cp "$INPUT_DIR/$i" "$OUTPUT_DIR/$i" 
    done 

Используя один из вопросов здесь я пытался сделать отметку времени проверки, но я оно не работает, и я уверен, что его потому, что я не полностью понять код.

Может кто-нибудь предложить, что Я делаю неправильно

Спасибо, Майкл A

ответ

3
test "$OUTPUT_DIR/$i.pvr" -nt "$INPUT_DIR/$i"; 

Проверяет, является ли $ OutputDir/$ i.pvr новее, чем $ INPUTDIR/$ я, я думаю, что вы хотите чтобы сделать это наоборот.

test "$INPUT_DIR/$i" -nt "$OUTPUT_DIR/$i.pvr"; 

Чтобы проверить, что входной сигнал новый, чем выход.

4

Выполнение вещей только в том случае, если некоторые файлы новее, чем ожидалось, лучше всего достигается с помощью make. Это немного сложнее, чтобы учиться, но очень эффективно.

+0

+1. Возможно, было бы сложнее учиться * правильно *, но для относительно простой задачи, такой как OP, ее, вероятно, можно было бы решить довольно быстро, просто играя с существующими make-файлами. Поэтому для ОП не откладывайте предупреждение о сложности; это действительно стоит усилий. –

Смежные вопросы