文件夹内脚本生成列表
由于个人需要于是写了一个把文件夹下的所有脚本生成一个列表的脚本,目的是可以把所有的脚本整合为一个列表共其他人查看并选择有需要的脚本进行下载运行。详细的使用方法可以参看下面的说明。
clist.sh脚本使用说明:(建议设置定期执行)
目录结构:
clist.sh
script
┣a.sh
┣b.sh
┣c.sh
┣b.sh
┗e.sh
脚本信息头需要包含如下信息:
###name:测试脚本 此脚本的作用名称,简洁明了告诉用户这个是干啥的;
###info:此脚本是一个测试脚本 脚本信息,比如说此脚本是做什么用的,不建议文字描述过多;
###filename:a.sh 脚本文件本身名称,用于生成菜单使用,不建议脚本名称为中文;
clist.sh源代码
#!/bin/bash #需要生成列表的文件需要包含如下信息头 # ###name:测试 脚本名字 # ###info:此为测试脚本 脚本说明 # ###filename:test.sh 此脚本的全名 #需要生成列表文件的格式 例:*.sh则是为script下的所有sh文件生成列表 re=*.sh #末尾必须加"/" #clist.sh所在的路径 例:https://test.mxin.moe/shell/ 则是clist.sh脚本文件在shell目录下 url=https://file.mxin.moe/shell/ c=0 for file in script/$re do filelist[$c]="$file" ((c++)) done rm -rf list.sh echo -e "clear" >> list.sh echo -e "echo -e \"\t\t\t综合脚本下载 by mxin.moe\"" >> list.sh echo -e "echo ======================================================================" >> list.sh for ((i=0; i<$c; i ++)) do name=`cat ${filelist[$i]} | grep \###name` name=${name##*:} info=`cat ${filelist[$i]} | grep \###info` info=${info##*:} filename=`cat ${filelist[$i]} | grep \###filename` filename=${filename##*:} menu_info[$i]="echo $i.$name $info $filename" echo ${menu_info[$i]} >> list.sh echo ${menu_info[$i]} done echo -e "echo ======================================================================" >> list.sh echo -e 'read -p "请输入要使用的脚本编号:" num' >> list.sh echo -e 'case "$num" in' >>list.sh for ((i=0; i<$c; i ++)) do echo -e "\t$i)" >> list.sh echo -e "\twget $url${filelist[$i]}" >> list.sh new=${filelist[$i]} new=${new##*/} echo -e "\tchmod +x $new" >> list.sh echo -e "\tbash $new" >> list.sh echo -e "\t;;" >> list.sh done echo -e "esac" >> list.sh
示例使用方法:(以本人目前有脚本为例)
#!/bin/bash ###name:域名延时测试 ###info:返回给定域名列表最小延时域名 ###filename:k_domain.sh #Server域名或IP地址,中括号一个数字代表一个域名,递增方式; #例:server[0]="www.baidu.com" server[1]="www.mxin.moe" server[0]="www.baidu.com" server[1]="www.mxin.moe" server[2]="www.qq.com" server[3]="www.sina.com" source /etc/os-release case $ID in debian|ubuntu) sudo apt -y install bc > /dev/null 2>&1 ;; centos) sudo yum -y install bc > /dev/null 2>&1 ;; *) echo '此脚本不支持此操作系统' exit ;; esac i=0 while(($i<${#server[*]})) do ii=0 while(($ii<4)) do r[$ii]=`ping ${server[0]} -c 1 -W 2 | awk '{print $8}' | awk -F= '{print $2}'` let ii++ done result[$i]=`echo "scale=2; ("${r[0]} + ${r[1]} + ${r[2]} + ${r[3]}") / 4" | bc` result[$i]=${result[$i]}_${server[$i]} let i++ done new=`echo ${result[*]} | tr ' ' '\n' | sort -n` new=`echo ${new[*]} | awk '{print $1}' | awk -F_ '{print $2}'` echo $new #此变量为返回的最快域名
生成的list.sh代码:
#!/bin/bash clear echo -e " 综合脚本下载 by mxin.moe" echo ====================================================================== echo 0.饥荒开服脚本 饥荒linux系统服务器开服脚本 dst_server.sh echo 1.域名延时测试 返回给定域名列表最小延时域名 k_domain.sh echo 2.SSR内核更换 更换SSR加速内核 kernel.sh echo 3.科学上网 科学上网搭建脚本 shadowsocks.sh echo 4.SSR动态IP更新 更新远程SSR入流量规则,防止被封。 ss_updata.sh echo ====================================================================== read -p "请输入要使用的脚本编号:" num case "$num" in 0) wget https://file.mxin.moe/shell/script/dst_server.sh chmod +x dst_server.sh bash dst_server.sh ;; 1) wget https://file.mxin.moe/shell/script/k_domain.sh chmod +x k_domain.sh bash k_domain.sh ;; 2) wget https://file.mxin.moe/shell/script/kernel.sh chmod +x kernel.sh bash kernel.sh ;; 3) wget https://file.mxin.moe/shell/script/shadowsocks.sh chmod +x shadowsocks.sh bash shadowsocks.sh ;; 4) wget https://file.mxin.moe/shell/script/ss_updata.sh chmod +x ss_updata.sh bash ss_updata.sh ;; esac
list.sh脚本运行结果展示:
铭心》原创,转载请保留文章出处。
本文链接:https://www.mxin.moe/clist.html
版权声明:若无特殊注明,本文为《正文到此结束
发表吐槽
你肿么看?
既然没有吐槽,那就赶紧抢沙发吧!