如何在shell脚本中循环时更新我的当前目录?



那么,我循环遍历命令"ls">

for d in $(ls)
do
echo $d
rm -rf f1*.txt
done

循环前:Ls has [f1.txt f2.txt f5.txt f11.txt f12.txt f7.txt]

所需输出:f7.txt

实际输出:f11.txt f12.txt f7.txt

循环后:Ls has [f2.txt f5.txt f7.txt]

没有更新正在更新的命令。请帮助我,因为我刚开始使用Shell脚本,这是我的第一个脚本为我的工作。

要做您想做的事情,您需要在一个地方保存一个文件列表,当您遍历该列表时可以更新该列表。一种可能的方法是使用一个关联数组,以文件名为键,每个元素的值是一个标志,指示它是否处于活动状态。例如:

#!/bin/bash
declare -A files=()
for file in *; do
files["${file}"]=1
done
for file in "${!files[@]}"; do    # Iterate over the keys
if [ files["${file}"] -eq 1 ]; then
echo ${file}
for f in f1*.txt; do
rm "${f}"
entries["${f}"]=0
done
fi
done

相关内容

  • 没有找到相关文章

最新更新