那么,我循环遍历命令"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