我正在尝试遍历一堆tar文件,然后将提取的文件移动到一个新文件夹中,检查它们并删除它们,然后再转到下一个tar。
代码如下:
for i in *
do
tar -zxvf $i
mv *TTF* encoded
cd encoded
for j in *
do
echo $j
done
rm -f *TTF*
cd ..
done
当它到达嵌套循环时,它会询问我是否要显示所有x种可能性。显然有些事情是错的。有什么想法吗?
答案 0 :(得分:3)
你是否在文本编辑器中写了这个,然后尝试将它粘贴到终端中?你是否使用制表符来缩进行?如果是这样,请尝试将制表符更改为空格,或者只将文件另存为shell脚本,然后运行它。
(Tab键调用完成,如果有许多匹配的匹配,则显示“display all x possibilities”消息。)
答案 1 :(得分:0)
在子shell中运行'cd'命令及其后续操作,这意味着您不必执行“cd ..
”。此外,最好直接在子目录中提取每个tar文件。
for i in *.tar.gz
do
mkdir encoded
(
cd encoded
tar -zxvf ../$i
for j in *
do
echo $j
done
)
rm -fr encoded
done
这只假设tar文件在文件的路径中不包含任何带有“..
”的名称,这是非常罕见的。
答案 2 :(得分:0)
echo“输入no of terms”读取计数为$(seq 1 $ count)为t = expr $i - 1
为j in $(seq $ t -1 0)do echo -n“”done j = expr $count + 1
x = expr $j - $i
表示$(seq 1 $ x)中的k做echo -n“*”done echo“”