我编写了一个脚本,它应该包含第一个tar文件,执行script.sh
,然后是第二个tar文件,依此类推。
这就是script.sh
的样子:
tarball=(`ls -a | cut -d "." -f 1`)
mkdir ./$tarball
tar -zxvf $tarball.tar -C ./$tarball
我使用以下命令执行
script.sh
:for tarball in ./*.tar; do bash script.sh; done
但是变量
tarball
的赋值只接受第一个文件并对其进行处理(在上面发布的代码之后,有一些awk
命令将一些输出写入文件)。如何编写脚本,以便在获取第一个tar文件后,再获取第二个tar文件,依此类推?
最佳答案
您可以在脚本中执行此操作,也可以将while循环放在脚本中,并将所需的任何列表管道化到脚本中:
ls -1 | cut -d "." -f 1 |
while read tarball
do
mkdir "$tarball"
tar -zxvf "${tarball}.tar" -C ./"$tarball"
done