在 bash 中设置新变量

在 bash 中设置新变量

我有一个包含 zip 文件名称的列表。我想编写一个 for 循环将它们解压缩到给定目录中。

如何在 bash 中设置来自 zip 名称的一部分的变量?

for i in `cat zipfiles.txt`; do
     WIDTH3="${cat zipfiles.txt | rev | cut -c47-54 | rev}"

答案1

你循环遍历 的每一行zipfiles.txt。每次循环你都会用$i当前行的值设置一个变量。然后你从中删去一些cat zipfiles.txt没有意义的行。

您想从$i改为 中剪切。另外,您的语法是错误的,您必须使用$(any_command)而不是${any_command}

WIDTH3=$(echo "$i" | rev | cut -c47-54 | rev)

while read [...]无论如何,在这种情况下,最好使用for ...

while IFS= read -r line; do
    WIDTH3=$(echo "$line" | rev | cut -c47-54 | rev)
    do_something
done < zipfiles.txt

相关内容