2013-06-19 50 views
0

我需要在我的项目我的资源图像文件进行加密,所以我用NK-Encrypter,我写这样目录或文件包含空格错误Shell脚本

DIRNAME=ImageFiles/Images 
     RESOURCES=Resources 
     ENC_KEY="abcdefghijklmnopqrstuvwxyz123456" 

     INDIR=$PROJECT_DIR/$DIRNAME 
     OUTDIR=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH/$RESOURCES/$DIRNAME 

     if [ ! -d "$OUTDIR" ]; then 
     mkdir -p "$OUTDIR" 
     fi 

    for file in $`find $INDIR -type f` 
     do 
     echo "Encrypting $file" 
     "$PROJECT_DIR/crypt" -e -k $ENC_KEY -i "$file" -o "$OUTDIR/`basename "$(dirname ${file})"`/`basename "$file"`" 
     done 

我都面临着一个问题,当目录或运行脚本文件包含空间它显示错误Shell Script Invocation Error Command /bin/sh failed with exit code 1我该如何解决这个问题。

+0

'for $ in $'find $ INDIR -type f'看起来不太好。你可能想在$(find $ INDIR -type f)'中使用'for file。 – fedorqui

回答

0

经典;请勿使用..在,请使用

find "$INDIR" -type f | while read file; do 
    echo "Encrypting $file" 
    "$PROJECT_DIR/crypt" -e -k $ENC_KEY -i "$file" -o "$OUTDIR/`basename "$(dirname ${file})"`/`basename "$file"`" 
done 
+0

伟大的工作。谢谢。 – NewStack