此脚本从 Bash 但不是从 Automator 运行
This script runs from Bash but not from Automator
我正在使用 automator 为 finder 创建一个服务。该服务只有一项:"run shell script" 脚本是这样的:
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
想法是这样的:
- 我右击一堆名称包含
@3x
的图片,比如file@3x.png、ball@3x.jpg等
- 我希望脚本生成文件的
@2x
和 @1x
版本,将它们重命名为 file@2x.png、ball@2x.jpg、file.png和 ball.jpg 分别。
- 脚本必须遵守格式。如果文件为 PNG,则输出应为 PNG,JPG 也应如此。
您在上面看到的这个脚本从终端运行,而不是从自动化器运行。在 automator 上,脚本只生成一个名为 Users
.
的文件
怎么了?
What is wrong?
可能是脚本的参数。为了检验这个假设,添加
printf '<%s>\n' "$@" >$HOME/debug.out
在 currentDirectory=$(pwd)
之后。
如果这没有帮助,还添加 set -x
并将 stderr 重定向到您可以找到它的地方。
我正在使用 automator 为 finder 创建一个服务。该服务只有一项:"run shell script" 脚本是这样的:
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
想法是这样的:
- 我右击一堆名称包含
@3x
的图片,比如file@3x.png、ball@3x.jpg等 - 我希望脚本生成文件的
@2x
和@1x
版本,将它们重命名为 file@2x.png、ball@2x.jpg、file.png和 ball.jpg 分别。 - 脚本必须遵守格式。如果文件为 PNG,则输出应为 PNG,JPG 也应如此。
您在上面看到的这个脚本从终端运行,而不是从自动化器运行。在 automator 上,脚本只生成一个名为 Users
.
怎么了?
What is wrong?
可能是脚本的参数。为了检验这个假设,添加
printf '<%s>\n' "$@" >$HOME/debug.out
在 currentDirectory=$(pwd)
之后。
如果这没有帮助,还添加 set -x
并将 stderr 重定向到您可以找到它的地方。