如何正确地将文件夹名称传递给shell脚本?

时间:2013-11-05 15:02:46

标签: macos automator

我想使用选择的文件夹运行下面的shell脚本:

exiftool -k -P -overwrite_original_in_place -ImageDescription= /Users/User/Pictures/2013.09.22\ -\ Парк\ Горького/*.ARW

如果我通过终端这样做,它会很好用。 但是,当我尝试使用Automator进行自动化时:

  1. 选择Finder对象
  2. 设置变量值(path
  3. 运行shell脚本:exiftool -k -P -overwrite_original_in_place -ImageDescription= $1*.ARW
  4. exiftool无法找到该文件。我试过$1\*.ARW - 它没有帮助。

1 个答案:

答案 0 :(得分:0)

您需要将引用加倍引用$ 1(... -ImageDescription= "$1"*.ARW),否则shell会将其拆分为路径中空格的单独参数。

可能会或可能不会出现问题的其他事情,具体取决于您如何设置路径变量:首先,如果它不以尾随正斜杠结束,您需要将其添加到参考(... -ImageDescription= "$1"/*.ARW)。其次,如果你嵌入了逃逸(反斜杠),它就无法正常工作。在变量值中嵌入引号和转义并不能完成您的想法,并且几乎总是会造成麻烦;所以不要那样做。