文件夹内脚本生成列表

    选择打赏方式

    由于个人需要于是写了一个把文件夹下的所有脚本生成一个列表的脚本,目的是可以把所有的脚本整合为一个列表共其他人查看并选择有需要的脚本进行下载运行。详细的使用方法可以参看下面的说明。
    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
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框
可使用QQ号实时获取昵称+头像

私密评论

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!