我有一个包含 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