Tôi cần phải viết một tập lệnh sẽ hiển thị tất cả các tệp lớn hơn 1M một (trong thư mục hiện tại) và sau mỗi tệp được hiển thị để hỏi người dùng liệu anh ta có muốn xóa nó hay không, sau đó anh ta có muốn để nén nó và cuối cùng là một tùy chọn để bỏ qua nó. Sau khi người dùng chọn một hành động, tệp tiếp theo sẽ được hiển thị với cùng các tùy chọn được cung cấp.
Đó là những gì tôi quản lý để viết cho đến nay, nhưng đầu ra cho tôi tên của tệp đầu tiên (Từng thứ một hoạt động) và đưa ra 'Đầu vào không hợp lệ' trên dòng sau.
#!/bin/bash
find . -maxdepth 1 -type f -size +1M | while read -r output;
do
echo ${output};
read -r -p "Would you like to delete the file? [Y/n] " input
case $input in
[yY][eE][sS]|[yY])
echo "The file has been deleted!"
;;
[nN][oO]|[nN])
;;
*)
echo "Invalid input..."
exit 1
;;
esac
done
Rõ ràng với tôi rằng read -r -p input
nó không hoạt động trong vòng lặp while đã chứa read -r output
, nhưng tôi không thấy những gì tôi có thể làm trong tình huống này.