我在这里创建了一个脚本,脚本是关于检查磁盘空间的,如果磁盘空间有足够的空间,那么它将下载所需的文件,之后它将提取文件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显示,且不得提取。
非常感谢帮助。
答案 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