Macos Bash脚本作为OSX应用程序等待删除的文件
我写了一个bash脚本,我用Platypus把它变成了一个应用程序。我选择鸭嘴兽,所以我可以很容易地使用水滴选项 基本思想是从用户那里获取一个zip文件,解压该文件并排除几个我们不使用的文件,重新压缩新文件并将它们移动到桌面上的文件中。当我运行应用程序时,脚本不会等待用户删除文件。它运行并给出一个错误,没有找到.zip 我有几个问题 如何让我的应用程序等待zip文件被放置在水滴上 Platypus将文件存储在何处?如何在脚本中调用它 这就是我目前所拥有的Macos Bash脚本作为OSX应用程序等待删除的文件,macos,shell,Macos,Shell,我写了一个bash脚本,我用Platypus把它变成了一个应用程序。我选择鸭嘴兽,所以我可以很容易地使用水滴选项 基本思想是从用户那里获取一个zip文件,解压该文件并排除几个我们不使用的文件,重新压缩新文件并将它们移动到桌面上的文件中。当我运行应用程序时,脚本不会等待用户删除文件。它运行并给出一个错误,没有找到.zip 我有几个问题 如何让我的应用程序等待zip文件被放置在水滴上 Platypus将文件存储在何处?如何在脚本中调用它 这就是我目前所拥有的 unzip *.zip -x *.cpg
unzip *.zip -x *.cpg *.xml *.txt -d Processed
cd NavtecProcessed
zip -r * *
echo "Cleaning up your mess"
mkdir ~/Desktop/Final/
mv ./*zip ~/Desktop/Final/
sleep 2
cd ..
rm -r NavtecProcessed*
echo "All done!"
当从数据文件夹在终端中运行时,脚本可以工作。任何帮助/指导都将不胜感激。您可能需要对脚本进行一些小的调整,以使其与鸭嘴兽水滴处理丢弃文件的方式兼容 以下是液滴工作原理的详细说明:
- 首次启动应用程序时,脚本将运行一次
- 当您将一个文件放入droplet时,脚本将以删除的文件作为参数运行
$#
作为参数总数,使用$1、$2、$3
等作为其余参数。您还可以使用$*
来使用所有参数
下面是一个示例脚本,它将输出水滴看到的传递文件的文件名(在applescript警报中)。请注意,如果传递了0个参数($#-eq 0
),则会出现if语句:
此脚本将一个已删除的文件夹、cd放入其中,然后执行原始脚本。如果没有传递一个参数(文件夹),那么它什么也不做
:)希望这有帮助 谢谢你的详细回复。我显然是新手,我会尝试你的建议。当我看到它如何工作时,我会发回。
#!/bin/sh
if [ $# -eq 0 ]
then
exit 0
fi
`/usr/bin/osascript << EOT
tell app "System Events"
display dialog "$# argument(s): $*"
end tell
EOT`
if [ "$#" -ne 1 ]
then
exit 0
fi
cd $1
unzip *.zip -x *.cpg *.xml *.txt -d Processed
cd NavtecProcessed
zip -r * *
echo "Cleaning up your mess"
mkdir ~/Desktop/Final/
mv ./*zip ~/Desktop/Final/
sleep 2
cd ..
rm -r NavtecProcessed*
echo "All done!"