我想像這樣獲取 tomcat.tar.gz 檔案的版本號
read -p echo " Enter Version (8 or 9)" version
version8=$(printf -- '%s\n' * | grep -oP 'apache-tomcat-$version\K.*(?=\.tar\.gz)')
version9=$(printf -- '%s\n' * | grep -oP 'apache-tomcat-$version\K.*(?=\.tar\.gz)')
echo $version8 #or better $version${version}, but that doesn't work, too
根據用戶輸入的版本,我將從當前檔案夾中的 gz 檔案中收到版本號。
示例:在我的檔案夾中有兩個 tar.gz
- apache-tomcat-8.5.78.tar.gz
- apache-tomcat-9.0.56.tar.gz
啟動腳本:
輸入版本(8 或 9):8
輸出應該是:8.5.78
使用上面的代碼,我什么也得不到。它出什么問題了?我懷疑這是由于變數(version8)中的變數(version)造成的。它在語法上如何正確?
uj5u.com熱心網友回復:
如果您有興趣,我可以使用它awk,如下所示:
read -p "Enter Version (8 or 9) " version
ls *.gz | awk "{split(\$0,a,\"-\"); split(a[3],b,\".\"); split(a[3],c,\".tar\"); if (b[1] == \"$version\") {print c[1]}}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455968.html
上一篇:未找到JVM啟動標志
