Merge pull request #1106 from sofia-riese/patch-1

refactor: format code and replace recursion with while loop in set_alias
This commit is contained in:
juewuy
2026-01-10 11:38:59 +08:00
committed by GitHub

View File

@@ -16,13 +16,15 @@ dir_avail() {
df -P $h "${1:-.}" 2>/dev/null | awk 'NR==2 {print $4}'
}
ckcmd() { #检查命令
# 检查命令
ckcmd() {
if command -v sh >/dev/null 2>&1; then
command -v "$1" >/dev/null 2>&1
else
type "$1" >/dev/null 2>&1
fi
}
webget() {
#参数【$1】代表下载目录【$2】代表在线地址
#参数【$3】代表输出显示【$4】不启用重定向
@@ -44,6 +46,7 @@ webget() {
[ $? -eq 0 ] && result="200"
fi
}
error_down() {
$echo "请参考 \033[32mhttps://github.com/juewuy/ShellCrash/blob/master/README_CN.md"
$echo "\033[33m使用其他安装源重新安装\033[0m"
@@ -51,6 +54,7 @@ error_down() {
# 安装及初始化
set_alias() {
while true; do
echo "-----------------------------------------------"
$echo "\033[36m请选择一个别名或使用自定义别名\033[0m"
echo "-----------------------------------------------"
@@ -61,18 +65,31 @@ set_alias() {
echo "-----------------------------------------------"
read -p "请输入相应数字或自定义别名 > " res
case "$res" in
1) my_alias=crash ;;
2) my_alias=sc ;;
3) my_alias=mm ;;
0) echo "安装已取消"; exit 1 ;;
*) my_alias=$res ;;
0)
echo "安装已取消"
exit 1
;;
1)
my_alias=crash
;;
2)
my_alias=sc
;;
3)
my_alias=mm
;;
*)
my_alias=$res
;;
esac
cmd=$(ckcmd "$my_alias" | grep 'menu.sh')
ckcmd "$my_alias" && [ -z "$cmd" ] && {
$echo "\033[33m此别名和当前系统内置命令/别名冲突,请换一个!\033[0m"
sleep 1
set_alias
continue
}
break
done
}
gettar() {
@@ -85,7 +102,7 @@ gettar() {
$CRASHDIR/start.sh stop 2>/dev/null
# 解压
echo "-----------------------------------------------"
echo 开始解压文件!
echo "开始解压文件!"
mkdir -p $CRASHDIR >/dev/null
tar -zxf '/tmp/ShellCrash.tar.gz' -C $CRASHDIR/ || tar -zxf '/tmp/ShellCrash.tar.gz' --no-same-owner -C $CRASHDIR/
if [ -s $CRASHDIR/init.sh ]; then
@@ -132,7 +149,7 @@ set_asus_dir() {
set_cust_dir() {
while true; do
echo "-----------------------------------------------"
echo '可用路径 剩余空间:'
echo '可用路径 剩余空间'
df -h | awk '{print $6,$4}' | sed 1d
echo '路径是必须带 / 的格式,注意写入虚拟内存(/tmp,/opt,/sys...)的文件会在重启后消失!!!'
read -p "请输入自定义路径 > " dir
@@ -257,7 +274,7 @@ setdir() {
install() {
echo "-----------------------------------------------"
echo 开始从服务器获取安装文件!
echo "开始从服务器获取安装文件!"
echo "-----------------------------------------------"
gettar
echo "-----------------------------------------------"
@@ -268,6 +285,7 @@ install() {
$echo "\033[33m输入\033[30;47m $my_alias \033[0;33m命令即可管理\033[0m"
echo "-----------------------------------------------"
}
setversion() {
echo "-----------------------------------------------"
$echo "\033[33m请选择想要安装的版本\033[0m"
@@ -286,6 +304,7 @@ setversion() {
*) ;;
esac
}
# 特殊固件识别及标记
[ -f "/etc/storage/started_script.sh" ] && {
systype=Padavan #老毛子固件
@@ -301,7 +320,7 @@ setversion() {
# 检查root权限
if [ "$USER" != "root" -a -z "$systype" ]; then
echo 当前用户:$USER
echo "当前用户:$USER"
$echo "\033[31m请尽量使用root用户不要直接使用sudo命令执行安装!\033[0m"
echo "-----------------------------------------------"
read -p "仍要安装?可能会产生未知错误!(1/0) > " res
@@ -311,6 +330,7 @@ fi
if [ -n "$(echo $url | grep master)" ]; then
setversion
fi
# 获取版本信息
webget /tmp/version "$url/version" echooff
[ "$result" = "200" ] && versionsh=$(cat /tmp/version)