我是相当新的BASH脚本,我试图创建自己的脚本下载/从源代码构建一个包。但是,我想添加一些交互到我的脚本,使其为未来的新版本做好准备。
我的脚本询问用户想要安装的版本,并生成wget命令和下载链接。见下面的摘录:
# Ask user for required version
read packversion
# Download version from internet (depending on version provided above)
wget https://example.com/download/1.10/src/$packversion.tar.gz -O package.tar.gz
这可以正常工作,但是如果您查看包含1.10的url,我想从提供的字符串中只提取主要/次要版本,并预先填充该版本。
是否有一个函数可以实现这一点?
先谢谢你。
4条答案
按热度按时间zpgglvta1#
在bash中,我能够做到:
摘自阿诺德·罗宾斯的《Bash口袋参考》(O 'Reilly,2016年,第2版):
${var%pattern}从左侧删除文本匹配 pattern 后使用 var 的值。删除最短的匹配项。
这里,{.*}是要删除的模式,它对应于补丁版本号。
cdmah0mi2#
我已经设法实现了我所追求的通过做以下:
然后创建一个新的变量,我可以用它来创建url。
虽然不确定这是不是最好的方法,但对我很有效。
bcs8qyzn3#
像这样的东西吗
结果:
**编辑:**使用此:
结果:
svmlkihl4#
因为这里的正确答案隐藏在其中一条注解中,这要感谢Pascal:
cut -d '.' -f 1,2 <<< "$packversion"