1
我想編寫一個shell腳本,它可以幫助我找到包含Main的jar。 我一直在思考的:查找包含Main:Shell腳本的Jar
find . -name "*.jar" | jar -tvf | grep Main
這似乎是不正確的,因爲罐子-tvf在同一時間發生在一個輸入和管道在一次創建完整輸出。是否有可能使管道連續工作?
我想編寫一個shell腳本,它可以幫助我找到包含Main的jar。 我一直在思考的:查找包含Main:Shell腳本的Jar
find . -name "*.jar" | jar -tvf | grep Main
這似乎是不正確的,因爲罐子-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
它給java.util.zip.ZipExcpetion:錯誤在java.util.zip.ZipFile.open打開zip文件,.... – mousecoder
啊我在'$ file'中缺少'$',試試吧 – anubhava