bash|变量中的变量

  • 本文关键字:变量 bash bash shell
  • 更新时间 :
  • 英文 :


我想获得类似的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]}}"

相关内容

  • 没有找到相关文章