首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Platypus包装后的For循环中断

使用Platypus包装后的For循环中断
EN

Stack Overflow用户
提问于 2017-02-11 01:39:39
回答 1查看 47关注 0票数 0

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

代码语言:javascript
复制
#!/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

温文尔雅的先生和女士们,谢谢!下面是使用您的注释的工作脚本。感谢您的快速转身。几天前就该这么做了。

代码语言:javascript
复制
#!/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
EN

回答 1

Stack Overflow用户

发布于 2017-02-11 04:55:05

代码语言:javascript
复制
#!/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个相同名称的文件,我已将脚本编辑为如下所示。

代码语言:javascript
复制
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        
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42165485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档