我想编写一个shell脚本,可以帮助我找到包含Main的jar。 我一直想着:
find . -name "*.jar" | jar -tvf | grep Main
这似乎是不正确的,因为jar -tvf一次接收一个输入,管道一次创建完整输出。是否有可能使管道连续工作?
答案 0 :(得分:3)
如果您正在使用bash,则可以使用流程替换来使用此脚本:
while IFS= read -d '' -r file; do
if jar -tf "$file" | grep -q 'Main'; then
echo "$file has Main"
break
fi
done < <(find . -name "*.jar" -print0)
对于非bash使用:
find . -name "*.jar" -print0 |
while IFS= read -d '' -r file; do
if jar -tf "$file" | grep -q 'Main'; then
echo "$file has Main"
break
fi
done