目录结构如下:
├─thrift_master
├─Common
└─common.thrift
├─folder2
└─f1.thrift
└─types.thrift
└─update.sh
我想使用thrift -nowarn -gen py
这是我使用shell的尝试,它适用于我使用的是Common/*.thrift
之类的绝对目录,如何使它递归工作?
cd `dirname $0`
TMP=thrift_master
#...
cd $TMP
for i in Common/*.thrift *.thrift folder2/*.thrift
do
thrift -nowarn -gen py $i
done
echo "update thrift_interface gen files..."
答案 0 :(得分:1)
您可以在Unix / Linux系统上使用find
实用程序:
cd thrift_master
find . -iname '*.thrift' -print0 |
while IFS= read -rd '' file; do
thrift -nowarn -gen py "$file"
done
-print0
的{{1}}选项来获取由NUL字符分隔的输出,以解决带有空格/ glob字符的文件名。find
中使用-IFS=
和-d ''
处理以NUL字符分隔的文件名。 PS:如果您是read
,则可以使用流程替换:
bash