bash – 在“$@”中的最后一个参数之前提取参数

前端之家收集整理的这篇文章主要介绍了bash – 在“$@”中的最后一个参数之前提取参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图创建一个Bash脚本,它将从命令行提取的最后一个参数提取到一个变量,以供其他地方使用。这里是我正在处理的脚本:
  1. #!/bin/bash
  2. # compact - archive and compact file/folder(s)
  3.  
  4. eval LAST=\$$#
  5.  
  6. FILES="$@"
  7. NAME=$LAST
  8.  
  9. # Usage - display usage if no parameters are given
  10. if [[ -z $NAME ]]; then
  11. echo "compact <file> <folder>... <compressed-name>.tar.gz"
  12. exit
  13. fi
  14.  
  15. # Check if an archive name has been given
  16. if [[ -f $NAME ]]; then
  17. echo "File exists or you forgot to enter a filename. Exiting."
  18. exit
  19. fi
  20.  
  21. tar -czvpf "$NAME".tar.gz $FILES

由于第一个参数可以是任何数字,我必须找到一种方法提取最后一个参数(例如compact file.a file.b file.d files-a-b-d.tar.gz)。由于现在的存档名称将包含在要压缩的文件中。有没有办法做到这一点?

要从数组中删除最后一个项目,你可以使用这样:
  1. #!/bin/bash
  2.  
  3. length=$(($#-1))
  4. array=${@:1:$length}
  5. echo $array

猜你在找的Bash相关文章