当我使用 Bash 在 XCode 中创建 Automator 操作时,所有文件和文件夹路径都会打印到标准输入。
如何获取这些文件的内容?无论我尝试什么,我只会在输出中获得文件名。
如果我只选择“运行 shell 脚本”,我可以选择是否要将所有内容都输入标准输入或作为参数。这可以为 XCode 项目完成吗?
使用 Applescript 几乎更容易,并让它运行 Bash。
我尝试了类似的东西
xargs | cat | MyCommand
read
将从脚本的标准输入读取行;只要确保设置$IFS
为不会干扰的东西,如果路径名被发送而没有反斜杠转义任何空格:
OLDIFS="$IFS"
IFS=$'\n'
while read filename ; do
echo "*** $filename:"
cat -n "$filename"
done
IFS="$OLDIFS"
xargs
和那里之间的管道是cat
什么?尝试
xargs cat | MyCommand
或更好,
xargs -R -1 -I file cat "file" | MyCommand
正确处理带有空格等的文件名。
相反,如果您希望在每个文件上调用 MyComand,
local IFS="\n"
while read filename; do
MyCommand < $filename
done
也可能有用。