From 66ba7dc0883e8280f02b198895919e29403d27e4 Mon Sep 17 00:00:00 2001 From: lsy Date: Tue, 19 Nov 2024 00:06:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=8A=A8=E5=8C=96?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Config/Automation/manage.sh | 95 +++++++++++++++---------------------- Config/Docker/manage.sh | 2 +- 2 files changed, 39 insertions(+), 58 deletions(-) diff --git a/Config/Automation/manage.sh b/Config/Automation/manage.sh index 42b255b..7b71828 100644 --- a/Config/Automation/manage.sh +++ b/Config/Automation/manage.sh @@ -1,78 +1,59 @@ #!/bin/bash +echo "1. 查看已安装的脚本" +echo "2. 删除脚本" -# 显示菜单 -function show_menu() { - echo "1. 查看已安装的脚本" - echo "2. 删除脚本" -} +declare user_choice +read -p "请输入您的选择:" user_choice -# 获取用户选择 -function get_user_choice() { - read -p "请输入您的选择:" user_choice - echo $user_choice -} +declare script_directory="/var/script" +echo "请输入脚本安装目录,默认是 ${script_directory}" +read -p "请输入:" script_directory -# 获取脚本目录 -function get_script_directory() { - local default_directory="/var/script" - read -p "请输入脚本安装目录(默认是 ${default_directory}):" script_directory - [[ -z $script_directory ]] && script_directory=$default_directory - echo $script_directory -} +if [[ -z $script_directory ]]; then + script_directory="/var/script" +elif ! [[ -d $script_directory ]]; then + echo "该目录不存在" + exit +fi -# 列出已安装的脚本 -function list_installed_scripts() { - local directory=$1 - declare -a scripts - local count=0 - - for script in "$directory"/* ; do - if [[ $script == "${directory}/*" ]]; then +function list_scripts() { + declare -a installed_scripts + declare script_name + declare script_count=0 + for script in "$script_directory"/* ; do + if [[ $script == "${script_directory}/*" ]];then echo "该目录没有脚本" - return + exit fi - local script_name=$(awk -F '.' '{print $1}' <<< "$(basename $script)") + script_name=$(awk -F '.' '{print $1}' <<< "$(basename $script)") if [[ $script_name == "linuxtool" ]]; then continue fi - count=$(( count + 1 )) - echo "${count}.${script_name}" - scripts[$count]=$script_name + script_count=$(( script_count+1 )) + echo "${script_count}.${script_name}" + installed_scripts[$script_count]=$script_name done - - if [ ${#scripts[@]} == 0 ]; then + if [ ${#installed_scripts[@]} == 0 ]; then echo "该目录没有脚本" - return + exit fi - - echo "${scripts[@]}" + echo "${installed_scripts[@]}" } -# 删除脚本 -function delete_scripts() { - local scripts=("$@") - read -p "请输入要删除的序号(多个用空格隔开):" indices - for i in $indices ; do - if [[ $i =~ ^[1-9][0-9]*$ ]] && [ $i -le ${#scripts[@]} ]; then - echo "开始删除 ${scripts[$i]}" - (crontab -l 2>/dev/null | grep -v "${scripts[$i]}") | crontab - && echo "已删除脚本的自动任务" - rm -rf "$script_directory/${scripts[$i]}" &> /dev/null - echo "删除完成" - fi - done -} - -# 主程序 -show_menu -user_choice=$(get_user_choice) -script_directory=$(get_script_directory) - case $user_choice in '1') - installed_scripts=($(list_installed_scripts "$script_directory")) + list_scripts ;; '2') - installed_scripts=($(list_installed_scripts "$script_directory")) - delete_scripts "${installed_scripts[@]}" + installed_scripts=($(list_scripts)) + read -p "请输入要删除的序号(多个用空格隔开):" script_name + for i in $script_name ; do + if [[ $i =~ [1-${#installed_scripts[@]}] ]]; then + echo "开始删除 ${installed_scripts[$i]}" + (crontab -l 2>/dev/null | grep -v "${installed_scripts[$i]}") | crontab - && echo "已删除脚本的自动任务" + rm -rf "$script_directory/${installed_scripts[$i]}" &> /dev/null + echo "删除完成" + fi + done ;; esac \ No newline at end of file diff --git a/Config/Docker/manage.sh b/Config/Docker/manage.sh index e779d61..8528592 100644 --- a/Config/Docker/manage.sh +++ b/Config/Docker/manage.sh @@ -47,6 +47,6 @@ case $user_choice in echo "删除完成" fi done - echo "删除完成" + echo "全部删除完成" ;; esac \ No newline at end of file