查找包含 Main 的 Jar:Shell 脚本
Finding a Jar that contains Main: Shell Scripting
我想编写一个 shell 脚本来帮助我找到包含 Main 的 jar。
我一直在想:
find . -name "*.jar" | jar -tvf | grep Main
这似乎是不正确的,因为 jar -tvf 一次接受一个输入,而管道一次创建完整的输出。是否有可能使管道串行工作?
如果您使用的是 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
我想编写一个 shell 脚本来帮助我找到包含 Main 的 jar。 我一直在想:
find . -name "*.jar" | jar -tvf | grep Main
这似乎是不正确的,因为 jar -tvf 一次接受一个输入,而管道一次创建完整的输出。是否有可能使管道串行工作?
如果您使用的是 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