修复脚本路径问题

This commit is contained in:
lsy 2025-06-06 01:30:17 +08:00
parent 1774606938
commit a337436c3a

56
run.sh
View File

@ -1,43 +1,41 @@
#!/bin/bash
if [[ $UID != 0 ]]; then
echo "请以root权限执行该脚本"
exit
echo "请以root权限执行该脚本"
exit
fi
declare -a function_array
declare selected_function
declare script_path=$(dirname $0)
declare script_path=$(dirname $(readlink -f $0))
script_path="${script_path}/Config"
declare local_path=$script_path
declare script_name
while true
do
# 1. 目录初始化脚本 _init.sh
if [[ -e "${local_path}/_init.sh" ]]; then
while true; do
# 1. 目录初始化脚本 _init.sh
if [[ -e "${local_path}/_init.sh" ]]; then
bash "${local_path}/_init.sh"
if [[ $? -eq 1 ]]; then
local_path=$script_path
continue
local_path=$script_path
continue
fi
fi
fi
# 2. 完全替代菜单 _menu.sh
if [[ -e "${local_path}/_menu.sh" ]]; then
# 2. 完全替代菜单 _menu.sh
if [[ -e "${local_path}/_menu.sh" ]]; then
clear
bash "${local_path}/_menu.sh" "$local_path"
local_path=$script_path
continue
fi
fi
# 默认菜单逻辑
selected_function=0
function_array=()
echo "======$(basename $local_path .sh)======"
for i in "${local_path}"/*
do
script_name=$(awk -F '.' '{print $1}' <<< "$(basename $i)")
# 默认菜单逻辑
selected_function=0
function_array=()
echo "======$(basename $local_path .sh)======"
for i in "${local_path}"/*; do
script_name=$(awk -F '.' '{print $1}' <<<"$(basename $i)")
# 忽略特殊文件
if [[ $script_name =~ ^_ ]]; then
continue
@ -45,14 +43,14 @@ do
selected_function=$((selected_function + 1))
function_array[$selected_function]=$script_name
echo "${selected_function}.${function_array[$selected_function]}"
done
done
if [[ $local_path != $script_path ]]; then
if [[ $local_path != $script_path ]]; then
echo "输入任意返回主页"
fi
fi
read -p "请输入要使用的功能:" user_choice
if [[ "$user_choice" =~ ^[0-9]+$ ]] && [ "$user_choice" -ge 1 ] && [ "$user_choice" -le "${#function_array[*]}" ]; then
read -p "请输入要使用的功能:" user_choice
if [[ "$user_choice" =~ ^[0-9]+$ ]] && [ "$user_choice" -ge 1 ] && [ "$user_choice" -le "${#function_array[*]}" ]; then
clear
selected_script="${function_array[$user_choice]}"
@ -70,11 +68,11 @@ if [[ "$user_choice" =~ ^[0-9]+$ ]] && [ "$user_choice" -ge 1 ] && [ "$user_choi
fi
local_path=$script_path
fi
else
if [[ $local_path == $script_path ]]; then
else
if [[ $local_path == $script_path ]]; then
exit
fi
local_path=$script_path
fi
local_path=$script_path
fi
done