如何在文件和文件夹作为参数的bash中编写Automator操作?

时间:2010-01-30 19:50:25

标签: xcode bash automator

当我使用Bash在XCode中创建Automator操作时,所有文件和文件夹路径都将打印到stdin。

如何获取这些文件的内容? 无论我尝试什么,我只在输出中获得文件名。

如果我只选择“运行shell脚本”,我可以选择是否要将所有内容都设置为stdin或作为参数。这可以为XCode项目做到吗?

使用Applescript几乎更容易,让它运行Bash。

我试过像

这样的东西
xargs | cat | MyCommand

2 个答案:

答案 0 :(得分:0)

read将读取脚本stdin中的行;只要确保将$IFS设置为在没有反斜杠转发任何空格的情况下发送路径名时不会干扰的内容:

OLDIFS="$IFS"
IFS=$'\n'
while read filename ; do
  echo "*** $filename:"
  cat -n "$filename"
done
IFS="$OLDIFS"

答案 1 :(得分:0)

xargscat之间的管道是什么?尝试

xargs cat | MyCommand

或者更好,

xargs -R -1 -I file cat "file" | MyCommand

使用空格等正确处理文件名。

相反,如果您希望在每个文件上调用MyComand,

local IFS="\n"
while read filename; do
  MyCommand < $filename
done

也可能有用。