【发布时间】:2012-06-07 18:13:48
【问题描述】:
我在这方面非常初学者并且已经搜索了我的问题的答案,但没有找到任何我理解如何实施的答案。任何帮助将不胜感激。
我有一个脚本:
FILE$=`ls ~/Desktop/File_Converted/`
mkdir /tmp/$FILE
mv ~/Desktop/File_Converted/* /tmp/$FILE/
所以我可以使用 Applescript 来说明何时将文件放入此桌面文件夹,创建一个临时目录,将文件移动到那里并执行其他操作。然后我删除临时目录。就目前而言,这很好,但问题是,如果在我对当前正在使用的文件执行操作之前将另一个文件放入 File_Converted 目录,它将在脚本之前更改 $FILE 变量的值完成对当前文件的操作。
我想做的是使用一个变量设置,变量是 $FILE1。我检查是否定义了 $FILE1,如果没有,则使用它。如果已定义,则尝试 $FILE2 等... 最后,当我完成后,我想回收变量,以便 $FILE1 再次设置回 null 并且放入 File_Converted 文件夹的下一个文件可以使用它再次。
任何帮助将不胜感激。我是新手,所以我不知道从哪里开始。
谢谢!
丹
【问题讨论】:
-
听起来像后进先出法。不,我不知道如何在 bash 中做到这一点。
-
变量一旦被赋值就不会改变它们的值而没有被明确地重新赋值——添加一个新文件不会修改一个已经存在于变量中的 glob 的结果——并且也是唯一的单个脚本执行(因此同一脚本的两个副本可以在
$FILE1中具有两个不同的值;它们不会相互更改)。现在,如果共享的 临时目录 被踩踏,那就更有意义了。 -
您的 AppleScript、inotify、cron 作业或任何可以启动脚本的东西。如果您使用 mktemp,您将不必担心并发运行会相互干扰。