Как добавить варианты для BASH скрипта для мусора? - PullRequest
2 голосов
/ 27 января 2020

Я борюсь с некоторыми командами для практики написания сценариев, я должен создать каталог "tra sh" в моем домашнем каталоге, который использует сценарий. Сценарий должен представить меню выбора либо удалить файл , очистить tra sh bin или exit . Если мне нужно удалить файл, он запрашивает имя файла, если я выбираю empty tra sh bin, он должен очистить каталог, но не удалять сам каталог, и как мне реализовать функцию «Вы уверены»? Это то, что я до сих пор

#!/bin/bash
PS3='Select your choice: '
options=("Delete File?" "Empty Trashbin?" "Exit")
select opt in "${options[@]}"
do
    case $opt in
        "Delete File?")
            echo "Are you sure you want to delete?"
            ;;
        "Empty Trashbin?")
            echo "Are you sure you want to empty trashbin?"
            ;;
        "Exit")
            break
            ;;

1 Ответ

1 голос
/ 27 января 2020

Я добавил некоторые части в ваш скрипт, надеюсь, это поможет

#!/bin/bash
FILEPATH="$1"
BINDIR="/tmp/trashbin"

PS3='Select your choice: '
options=("Delete File?" "Empty Trashbin?" "Exit")
select opt in "${options[@]}"
do
    case $opt in
        "Delete File?")
                [ -z "$FILEPATH" ] && { echo "Please provide a file as argument";break; }
                echo "Are you sure you want to delete \"$FILEPATH\"?"
                read -r ANSWER
                [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] && {
                        rm -rf "$FILEPATH"
                }
                break
            ;;
        "Empty Trashbin?")
                echo "Are you sure you want to empty trashbin?"
                read -r ANSWER
                [ "$ANSWER" == "y" ] || [ "$ANSWER" == "Y" ] && {
                        rm -rf "${BINDIR:?}/"*                     
                }
                break
            ;;
        "Exit")
            break
            ;;
esac
done
exit 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...