Shell / Bash嵌套循环 - Automator文件夹操作

时间:2016-08-30 00:31:46

标签: shell svg npm converter automator

如何自动执行以多种分辨率或文件格式保存SVG的过程?无需打开任何应用程序,如Illustrator?另外,我如何生成该SVG的视网膜准备回退版本?

1 个答案:

答案 0 :(得分:1)

在Mac OS上使用Node.js模块 svgexport (download) Automator

<强>安装

首先使用终端全局安装svg导出(必须安装“npm”):

npm install svgexport -g

<强>的Automator

  1. 创建三个文件夹,例如在您的桌面上方便使用:“转换”,“png”,“svg”(在这个例子中我们只从svg生成png,但jpg,pdf或其他工作)
  2. Open Automator&amp;创建一个新的文件夹操作(CMD + N)。开放式选择刚刚创建的文件夹“convert”。
  3. 从库中添加“Shell-Script”操作
  4. 将Shell设置为“/ bin / bash”并将“传递输入”设置为“作为参数”。
  5. 脚本 - 现在让我们添加代码,然后保存Automator操作。

    PATH=/usr/local/bin:/bin export PATH
    for i in "$@"; do
    
      for size in 100 250 640 1024 1600 2000; do
        o="${i%.svg}_$size.png"
        o2x="${i%.svg}_$size@2x.png"
        svgexport "$i" "$o" png 100% $size:
        svgexport "$i" "$o2x" png 100% "$(($size*2))":
        mv "$o" ~/Desktop/png/
        mv "$o2x" ~/Desktop/png/
      done
    
    mv "$i" ~/Desktop/svg/
    done
    

    <强>测试

    现在抓住一个svg,把它放在转换文件夹中,看看魔法发生了。

    <强>解释

    我们有两个 for循环:第一个为添加到svg文件夹的文件运行,第二个为列出的每个大小创建两个版本。一个正常和一个视网膜(@ 2x)。我们重命名文件并为每个文件名添加大小。最后,我们将生成的图像移动到png文件夹,将源svg移动到svg文件夹。

    Here is a great article更详细地解释了上述代码