bash – 在“$@”中的最后一个参数之前提取参数
发布时间:2020-12-15 16:28:24 所属栏目:安全 来源:网络整理
导读:我试图创建一个Bash脚本,它将从命令行提取的最后一个参数提取到一个变量,以供其他地方使用。这里是我正在处理的脚本: #!/bin/bash# compact - archive and compact file/folder(s)eval LAST=$$#FILES="$@"NAME=$LAST# Usage - display usage if no param
我试图创建一个Bash脚本,它将从命令行提取的最后一个参数提取到一个变量,以供其他地方使用。这里是我正在处理的脚本:
#!/bin/bash # compact - archive and compact file/folder(s) eval LAST=$$# FILES="$@" NAME=$LAST # Usage - display usage if no parameters are given if [[ -z $NAME ]]; then echo "compact <file> <folder>... <compressed-name>.tar.gz" exit fi # Check if an archive name has been given if [[ -f $NAME ]]; then echo "File exists or you forgot to enter a filename. Exiting." exit fi tar -czvpf "$NAME".tar.gz $FILES 由于第一个参数可以是任何数字,我必须找到一种方法来提取最后一个参数(例如compact file.a file.b file.d files-a-b-d.tar.gz)。由于现在的存档名称将包含在要压缩的文件中。有没有办法做到这一点?
要从数组中删除最后一个项目,你可以使用这样:
#!/bin/bash length=$(($#-1)) array=${@:1:$length} echo $array (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |