微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我怎样才能循环通过脚本中的一些文件?

在这一个初学者,并寻找答案我的问题,但没有find任何我明白如何执行。 任何帮助将不胜感激。

我有一个脚本:

FILE$=`ls ~/Desktop/File_Converted/` mkdir /tmp/$FILE mv ~/Desktop/File_Converted/* /tmp/$FILE/

所以我可以使用Applescript来说当一个文件被放到这个桌面文件夹中时,创build一个临时目录,在那里移动文件和做其他的事情。 然后我删除临时目录。 这就好了,但问题是,如果另一个文件被丢弃到File_Converted目录之前,我正在做的东西的文件,我目前正在使用它将改变$ FILEvariables的值之前,脚本有完成对当前文件的操作。

我想要做的是使用variables设置variables,例如,$ FILE1。 我检查$ FILE1是否被定义,如果没有,使用它。 如果它被定义,然后尝试$ FILE2等…最后,当我完成,我想回收variables,所以$ FILE1得到设置回到空再次下一个文件放入File_Converted文件夹可以使用它再次。

通过.bat中的行循环并存储variables而不覆盖

反复从batch file执行Windows命令?

Shell脚本数组

Windows批处理For循环不工作在一台服务器上,在其他工作

限制bash循环

任何帮助将不胜感激。 我是新来的,所以我不知道从哪里开始。

谢谢!

Java将行添加到文本文件的特定部分

bash在通过一对文件迭代大约3600万行之后返回错误的结果 – 这是内存错误吗?

继续总是非法在JS中切换,但打破工作正常

如何从数组中读取前n个元素

Windowsbatch file:循环行和拆分string

你的问题有点难以解析,但是我认为你并不是真正理解shell 遍历或循环结构 。 根据现在的情况 ,扩大这个空间,而不是早晚有什么。

DIR=$(mktemp -d) mv ~/Desktop/File_Converted/* "$DIR" cd "$DIR" for file in *; do : # whatever you want to do to "$file" done

您不需要LIFO – 针对不同事件运行的脚本的多个副本不会与其变量名称发生冲突。 他们将冲突的是共享的临时目录,并且每次脚本运行时,都应该使用mktemp -d创建一个具有新的唯一且保证不冲突的名称的临时目录。

tempdir=$(mktemp -t -d mytemp.XXXXXX) mv ~/Desktop/File_Converted/* "$tempdir" cd "$tempdir" for f in *; do ...whatever... done

你所描述的是一个典型的竞争条件,其中一个操作将在冲突操作开始之前完成并不清楚。 这些并不容易处理,但是通过处理脚本和编程,您将学到如此多的东西,即使是为了学习,这样做也是值得的。

我会建议您先查看lockfile或flock manpage。 尝试一些实验。 看起来你可能对此有正确的才能,因为你正在问正确的问题。

顺便说一句,我怀疑你想杀了$

FILE$=`ls ~/Desktop/File_Converted/`

顺便说一句,@CharlesDuffy正确地观察到:“在脚本中使用ls指示某些事情本身是错误的,请参阅mywiki.wooledge.org/ParsingLs和mywiki.wooledge.org/BashPitfalls 。 有人怀疑建议的lockfile练习会清除这两点,尽管它可能需要几个小时才能完成。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐