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