此脚本从Bash运行,但不从Automator运行

时间:2015-08-26 16:16:33

标签: macos bash automator

我正在使用automator为finder创建服务。该服务只有一个项目:“运行shell脚本”,脚本为:

currentDirectory=$(pwd)


for f in "$@"; do

  DIRNAME="$(dirname "$f")"

  export width=$( mdls "$f"  | grep kMDItemPixelWidth | tail -n1 | cut -d= -f2 )
  export height=$( mdls "$f" | grep kMDItemPixelHeight | tail -n1 | cut -d= -f2 )

  oneWidth=$((width / 3)) 
  oneHeight=$((height / 3))

  twoWidth=$((umWidth * 2 ))
  twoHeight=$((umHeight * 2 ))

  IFS='@3x' read -ra NAMES <<< "$f"    #Convert string to array

  basename=${NAMES[0]}
  extension="${f##*.}"

  fullnameOne=${NAMES[0]}.$extension
  fullnameTwo=${NAMES[0]}@2x.$extension

  sips -z "$oneWidth" "$oneHeight" "$f" --out "$DIRNAME"/"$fullnameOne"
  sips -z "$twoWidth" "$twoHeight" "$f" --out "$DIRNAME"/"$fullnameTwo"

done

这个想法是这样的:

  1. 我右键点击了一堆名为@3x的图片,如file @ 3x.png,ball @ 3x.jpg等。
  2. 我希望脚本生成@2x@1x个版本的文件,分别将它们重命名为file@2x.png,ball @ 2x.jpg,file.png和ball.jpg。
  3. 脚本必须尊重格式。如果文件是PNG,则输出应为PNG,JPG也是如此。
  4. 您在上面看到的这个脚本是从终端运行的,而不是从automator运行的。在automator上,脚本只生成一个名为Users的文件。

    有什么问题?

0 个答案:

没有答案