如何在while read循环中交互使用rm?
How to use rm interactively in a while read loop?
我有点卡在用于查找和删除某些文件的脚本中。我想让用户有机会遍历列表并仅在人工批准后删除每个文件。
但是,我发现脚本跳过了用户交互并且没有删除。
cat $fileToBeDeleted | while read in; do
rm -i "$in"
echo "deleted: $in"
done;
您可以使用 if 语句在删除文件之前请求确认,而不是使用 rm -i
。在此示例中,我使用了一个文本文件 (to_delete_list.txt),其中包含我将要删除的文件列表。
read -u 1 answer
将让您在循环中请求用户输入。
#!/bin/bash
while IFS= read -r file; do
echo "do you want to delete $file (y/n)?"
read -u 1 answer
if [[ $answer = y ]]
then
rm $file
echo "deleted: $file"
else
continue
fi
done < "to_delete_list.txt"
我有点卡在用于查找和删除某些文件的脚本中。我想让用户有机会遍历列表并仅在人工批准后删除每个文件。
但是,我发现脚本跳过了用户交互并且没有删除。
cat $fileToBeDeleted | while read in; do
rm -i "$in"
echo "deleted: $in"
done;
您可以使用 if 语句在删除文件之前请求确认,而不是使用 rm -i
。在此示例中,我使用了一个文本文件 (to_delete_list.txt),其中包含我将要删除的文件列表。
read -u 1 answer
将让您在循环中请求用户输入。
#!/bin/bash
while IFS= read -r file; do
echo "do you want to delete $file (y/n)?"
read -u 1 answer
if [[ $answer = y ]]
then
rm $file
echo "deleted: $file"
else
continue
fi
done < "to_delete_list.txt"