为了账号安全,请及时绑定邮箱和手机立即绑定

shell脚本的问题

shell脚本的问题

哆啦的时光机 2019-04-13 08:46:31
有没有shell高手帮忙看看?forFILEinapache-maven-*.tar.gz是什么意思?EXISTS=$(awss3lss3://lang-jvm/${NAME}.tar.gz--profilelang-jvm)这个又是什么?#!/usr/bin/envbash#failhardset-opipefail#failharderset-euVENDOR_DIR=$(cd$(dirname$0);pwd)TMPDIR=$(mktemp-d-tmaven-build)echo"--->Downloadingsources..."cd$TMPDIRforMAVENin$(cat${VENDOR_DIR}/sources.txt)doecho"$MAVEN..."curl-O--silent--location$MAVENdoneforFILEinapache-maven-*.tar.gzdoBUILD_DIR=buildNAME=$(echo$FILE|sed-e's/.*\(maven-[0-9]*.[0-9]*.[0-9]*\).*/\1/g')TARBALL=${NAME}.tar.gzEXISTS=$(awss3lss3://lang-jvm/${NAME}.tar.gz--profilelang-jvm)if[-z"$EXISTS"];thenecho"--->Building$NAME..."mkdir-p$BUILD_DIR/.m2/repositoryecho-n"Unpacking..."tarxzvf$FILE-C$BUILD_DIR&>/dev/nullmv${BUILD_DIR}/apache-maven*${BUILD_DIR}/.mavenecho"done"echo-n"Primingrepositorycache..."cd$BUILD_DIRcp$VENDOR_DIR/sample_pom.xmlpom.xml.maven/bin/mvn-B-Duser.home=$BUILD_DIRcleanpackageverifyinstall:help&>/dev/nullcd-&>/dev/nullecho"done"echo-n"Packaging..."tar-czvf${TARBALL}-C${BUILD_DIR}.maven.m2&>/dev/nullecho"done"echo-n"Uploading..."awss3cp${TARBALL}s3://lang-jvm--profilelang-jvm--aclpublic-read&>/dev/nullecho"done"rm-rf$BUILD_DIRelseecho"--->Skipping$NAME.Packagealreadyexists."fidone#todogetridofthisandjustpipecurltotarrmapache-maven-*
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

第一个是Bash通配符。在Bash中可以用通配符来匹配文件。表示匹配任意字符,所以apache-maven-.tar.gz表示(当前目录下)以apache-maven-开头,以.tar.gz结尾的所有文件。你可以试一下echoapache-maven-*.tar.gz。把这个通配符放在for循环中,每次循环的时候会把这个匹配列表中的一项赋值给FILE。
第二个是CommandSubstitution。$(command)表示command命令的输出。这里执行的是aws命令。首先处理文件名,将文件名中的3组数字只保留第一组,然后用aws命令查看s3服务器上是否有这个文件,如果有这个文件的话,aws命令会有输出,EXISTS非空,如果没有这个文件,aws命令没有输出,EXISTS为空,通过-z参数判断EXISTS变量是否为空,如果为空,则制作出这个文件,并上传到服务器上。
                            
查看完整回答
反对 回复 2019-04-13
?
HUWWW

TA贡献1874条经验 获得超12个赞

第二个不知道什么意思,第一个就是一个简单的枚举循环:
forFILEin/usr/lib/liba*
do
echo$FILE
done
你把上面的代码写到脚本里面自己试试,再和下面这条命令对比一下:
ls/usr/lib/liba*
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 419 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号