我想获得类似的tomcat.tar.gz文件的版本号
read -p echo " Enter Version (8 or 9)" version
version8=$(printf -- '%sn' * | grep -oP 'apache-tomcat-$versionK.*(?=.tar.gz)')
version9=$(printf -- '%sn' * | grep -oP 'apache-tomcat-$versionK.*(?=.tar.gz)')
echo $version8 #or better $version${version}, but that doesn't work, too
根据用户输入的版本,我将收到当前文件夹中gz文件的版本号。
示例:我的文件夹里有两个tar.gz
- apache-tomcat-8.5.78.tar.gz
- 阿帕奇-汤姆卡特-9.0.56.tar.gz
启动脚本:
输入版本(8或9(:8
输出应为:8.5.78
使用以上代码,我一无所获。它怎么了?我怀疑这是由于变量(版本8(中的变量(版本(造成的。它在语法上如何正确?
如果您感兴趣,我可以使用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]}}"