删除文件并提示用户做出决定
Deleting files and prompting user for his decision
printf "$(find "./RIT/"${neki_array["letnik"]}"" -name "*" )\n">> tmpfile
while IFS='' read -r line || [[ -n "$line" ]] ; do
echo "Do you want to delete "$line"? y|Y or n|N"
read anwser
if [ $anwser="y" ] || [ $anwser="Y" ] ; then
rm -rf "$line"
fi
done <tmpfile
rm -f tmpfile
这是我的代码。我想做的是将每个子文件夹或文本文件保存到名为 tmpfile 的临时文件中。完成后,我逐行阅读此文件并询问用户是否要删除它。问题是它会跳过用户输入和 if 语句并删除所有文件夹。
printf "$(find "./RIT/"${neki_array["letnik"]}"" -name "*" )\n">> tmpfile
while IFS='' read -r line || [[ -n "$line" ]] ; do
echo "Do you want to delete "$line"? y|Y or n|N"
read anwser < /dev/tty
case $anwser in
y|Y)
rm -rf "$line";;
*)
echo "You choose not to delete"
esac
done <tmpfile
rm -f tmpfile
我使用了 < /dev/tty 并放置了一个 switch case 而不是 if 并且它起作用了。
printf "$(find "./RIT/"${neki_array["letnik"]}"" -name "*" )\n">> tmpfile
while IFS='' read -r line || [[ -n "$line" ]] ; do
echo "Do you want to delete "$line"? y|Y or n|N"
read anwser
if [ $anwser="y" ] || [ $anwser="Y" ] ; then
rm -rf "$line"
fi
done <tmpfile
rm -f tmpfile
这是我的代码。我想做的是将每个子文件夹或文本文件保存到名为 tmpfile 的临时文件中。完成后,我逐行阅读此文件并询问用户是否要删除它。问题是它会跳过用户输入和 if 语句并删除所有文件夹。
printf "$(find "./RIT/"${neki_array["letnik"]}"" -name "*" )\n">> tmpfile
while IFS='' read -r line || [[ -n "$line" ]] ; do
echo "Do you want to delete "$line"? y|Y or n|N"
read anwser < /dev/tty
case $anwser in
y|Y)
rm -rf "$line";;
*)
echo "You choose not to delete"
esac
done <tmpfile
rm -f tmpfile
我使用了 < /dev/tty 并放置了一个 switch case 而不是 if 并且它起作用了。