用Platypus包裹后的Loop Breaks

时间:2017-02-10 17:39:39

标签: bash shell backup platypus

下面是我正在处理媒体备份的脚本片段。从终端命令行调用时,脚本按预期运行。但是,在将带有Platypus的脚本包装到App中后,将创建目标目录,但For循环不会运行,也不会将介质复制到目标文件夹。谁知道我在做错了什么?

#!/bin/sh

DEST_PATH=/Volumes/MediaBackup   
mkdir -p $DEST_PATH    
SAVEIFS=$IFS

IFS=$(echo -en "\n\b")

for i in $(find "$PWD" -iname "*.jpg")    
do      
    FILENAME="$(basename $i)"
    MD5="$(md5 -q $i)"
    cp "$i" "$DEST_PATH/$MD5-$FILENAME"
done 

IFS=$SAVEIFS

温柔的帅哥和/或女士们,谢谢!以下是使用您的评论的工作脚本。谢谢你快速转身。应该在几天前完成。

#!/bin/bash

DEST_PATH=/Volumes/PrivateMain/Media
mkdir -p $DEST_PATH
SAVEIFS=$IFS

IFS=$(printf "\n\b")

for i in $(find "/Users" -iname "*.jpg") 
do
FILENAME="$(basename $i)"
MD5="$(md5 -q $i)"

cp "$i" "$DEST_PATH/$MD5-$FILENAME"

done 

IFS=$SAVEIFS

1 个答案:

答案 0 :(得分:0)

#!/bin/bash

DEST_PATH=/Volumes/PrivateMain/Media
mkdir -p $DEST_PATH
SAVEIFS=$IFS

IFS=$(printf "\n\b")

for i in $(find "/Users" -iname "*.jpg") 
do
FILENAME="$(basename $i)"
MD5="$(md5 -q $i)"

cp "$i" "$DEST_PATH/$MD5-$FILENAME"

done 

IFS=$SAVEIFS

感谢所有帮助过的人!但是,由于可能会覆盖2个相同的命名文件,因此我将脚本编辑为如下所示。

SAVEIFS=$IFS
IFS=$(printf "\n\b")
COUNTER=0;
for i in $(find "/Users" -iname "*.jpg");
do

BASE=`expr "$i" : '.*/\(.*\)\..*'`;
EXT=`expr "$i" : '.*/.*\.\(.*\)'`;
COUNTER=`expr $COUNTER + 1` ;
cp "$i" ""${tardir}"/"$x"/JPG/"$BASE"_"$COUNTER"."$EXT""

done
IFS=$SAVEIFS