OS X Automator 和 shell 问题

OS X Automator and shell issue

我正在尝试在 OS X 上创建一个自动化工作流程,它可以在取景器中打开所选图像并使用 Photoshop 打开它

在此期间,我需要使用 Shell,这是我的代码

# create an empty string
a=""
# grab all the files selected in the finder (given by the previous operation)
for f in "$@"
do
# make a concatenation of the strings
    a=$a" $f"
done
# change the spaces " " by backslash+space "\ "
a=${a//$" "/$"\ "}
# cut the first two characters
a=${a:2}
# make the full sentence
a="open -a Adobe\ Photoshop\ CC\ 2015 $a"
printf "$a"

最后一次printf的结果是

open -a Adobe\ Photoshop\ CC\ 2015 /Users/me/Downloads/image\ test.jpg

当我将它粘贴到 shell 中时,它工作得很好,但是当我通过添加

运行 它时
$a

在我的小脚本中,我遇到了这个问题(字符串被切断)

error screenshot

在此先感谢您的帮助:-)

不要将数组粉碎成字符串。那就是问题所在。按原样使用数组。

请参阅 Bash FAQ 050 了解为什么字符串化是一个问题。

所以只需使用:

open -a Adobe\ Photoshop\ CC\ 2015 "$@"