自动化脚本,使用bash脚本来下载和提取解压缩的文件

时间:2014-05-12 03:50:51

标签: linux bash loops wget tar

我在这里创建了一个脚本,脚本是关于检查磁盘空间的,如果磁盘空间有足够的空间,那么它将下载所需的文件,之后它将提取文件5次,并且它不能提取最后一个{{ 1}}文件。但是当我执行脚本时,我遇到了一个问题。对于提取方面,它只提取1次,但我已经提取了5次。

tar.gz

#!/bin/bash outout=$(df -h) file=$(awk -F = '{print $2}' config.txt) filename=$(echo "$bundle" | awk -F / '{print $11}') diskspace=$(df -h /var/ | sed '1d' | awk '{print $5}' | cut -d'%' -f1) allowed=10 address=$(awk -F = '{print $2}' newconfig.txt) if [ "${diskspace}" -gt "${allowed}" ]; then # cd "/var/" wget $bundle else echo "Not enough space to download the bundle" echo $output exit fi i=0 for tarfile in *.tar.gz do $(($i++)) [ $i = 5 ] && break tar -xf "$tarfile" done  config.txt

files.tar.gz由5个tar里面的

组成

files1.tar.gz - > files2.tar.gz - > files3.tar.gz - > files4.tar.gz - > files5.tar.gz

我应该怎样做才能提取五次,直到files5.tar.gz显示,且不得提取。

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

因为我无法找出你想要的确切代码, 我将举例说明如何使用while循环

i=0
tar xf files.tar.gz
while [ $i -lt 4 ];do
 ((i++))
 tar xf files${i}.tar.gz
done

或使用for做同样的事情。

for i in "" {1..4};do
  tar xf files${i}.tar.gz
done

这些代码执行以下命令

tar xf files.tar.gz
tar xf files1.tar.gz
tar xf files2.tar.gz
tar xf files3.tar.gz
tar xf files4.tar.gz