企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
在deepin上使用的工具; zenity提供交互界面! 脚本代码如下: ```bash #!/bin/bash #UFUNCTION=deepin常见问题修复脚本 #zenity列表模板 ################ 主函数 ###################### main(){ login #身份验证 HELLO="联网显示一句话(测试网络)" RE_BD="修复百度网盘无法登录" MK_DESKTOP="创建应用快捷方式" CONF_TITLE_BAR="配置应用的titlebar宽度" REPAIR_APT="修复apt无法安装软件" pic="$HOME/Pictures/repair.jpg" while((1)) do ##1,列表单选框 cmd=$(zenity --list --radiolist --width 300 --height 400 \ --text="deepin 常见问题修复" \ --column="选择" \ --column="内容列表" \ TRUE $HELLO \ FALSE $RE_BD \ FALSE $MK_DESKTOP\ FALSE $CONF_TITLE_BAR \ FALSE $REPAIR_APT \ ); ## 处理自定义函数的结果 case $cmd in $HELLO) #通知执行结束 js=`curl -s https://v1.hitokoto.cn/` text=` echo $js | jq '.hitokoto'` #提取 text=${text//\"/} #去除引号 " author=$(echo $js | jq '.from') #提取 author=${author//\"/} #去除引号 " hi=${text} zenity --notification --text="$hi" --window-icon="$pic" ;; #notify-send "$hi" -i $pic ;; $RE_BD) #修复百度网盘无法登录 rm -rf ~/baidunetdisk/* notify-send "修复完成,请尝试登录百度网盘!" -i $pic ;; $MK_DESKTOP) #创建应用快捷方式 getYN=`zenity --question --text="是否开启文件选择模式进行配置?"` if [[ $? -eq 0 ]];then mkdesktop_w else mkdesktop fi zenity --notification --text="建立桌面快捷方式脚本运行结束!" --window-icon="$pic" ;; #notify-send "建立桌面快捷方式脚本运行结束!" -i $pic ;; $CONF_TITLE_BAR) config_titleBar zenity --notification --text="设置完成,请注销后重新登录以使设置生效!" --window-icon="$pic" ;; #notify-send "设置完成,请注销后重新登录以使设置生效!" -i $pic;; $REPAIR_APT) mv /var/lib/dpkg/info /var/lib/dpkg/info_old mkdir /var/lib/dpkg/info apt-get update zenity --notification --text="APT修复完成!" --window-icon="$pic" ;; *) break;; esac done exit 0 } ########### 函数定义 ################ login(){ ps=`zenity --title="身份验证" --password` echo $ps if test $ps then echo $ps | sudo -S test true if [[ $? -gt 0 ]] then zenity --info --text="密码错误!" exit 1 fi else zenity --info --text="密码为空或者用户主动取消登录!" exit 1 fi } ## 配置title bar的像素大小 config_titleBar(){ dirDark="$HOME/.local/share/deepin/themes/deepin/dark" dirLight="$HOME/.local/share/deepin/themes/deepin/light" if [ ! -d $dirDark ];then mkdir -p $dirDark fi if [ ! -d $dirLight ];then mkdir -p $dirLight fi #dark配置 file="$dirDark/titlebar.ini" if [ ! -f $file ];then touch $file fi h1=$(zenity --scale --max-value=50 --text="设置Dark主题的标题栏高度" --value=24) if test ! $h1 #输入为空 then zenity --info --text="您取消了Dark主题的tatlebar的设置!" else echo "[Active]" > $file echo "height=$h1" >> $file echo "" >> $file echo "[Inactive]" >> $file echo "height=$h1">> $file zenity --info --text="已经完成Dark主题的tatlebar的设置!" fi #light配置 file="$dirLight/titlebar.ini" if [ ! -f $file ];then touch $file fi h1=$(zenity --scale --max-value=50 --text="设置Light主题的标题栏高度" --value=24) if test ! $h1 #输入为空 then zenity --info --text="您取消了Light主题的tatlebar的设置!" else echo "[Active]" > $file echo "height=$h1" >> $file echo "" >> $file echo "[Inactive]" >> $file echo "height=$h1">> $file zenity --info --text="已经完成Light主题的tatlebar的设置!" fi } ## 创建桌面图标的引导函数 mkdesktop(){ #文本信息框,提示安装 FILE_lince=/tmp/file_config_temp_cache echo " 该脚本用于deepin下安装程序后桌面中没有启动图标时创建desktop文件。新建的桌面应用名为.desktop文件,文件将会直接建在桌面文件夹下。如您已经清楚,请勾选下面的选择框,并确定运行该脚本。">$FILE_lince zenity --text-info \ --title="说明" \ --filename=$FILE_lince \ --checkbox="我清楚并确定开始运行!" case $? in 0) echo "准备处理...............";; 1) `rm -f $FILE_lince` #删除临时文件 return ;; -1) echo "发生意外错误。" `rm -f $FILE_lince` #删除临时文件 return ;; esac #文件保存对话框 lu="/usr/share/applications" #设置应用名称 name_es=$(zenity --entry \ --title="输入应用名称" \ --text="应用名称:" \ --entry-text "app") FILE="$HOME/Desktop/$name_es.desktop" if [ -f $FILE ];then zenity --error --text="含有同名应用!" return fi echo $FILE if test ! $name_es ;then zenity --error --text="输入有误!" return fi #设置应用执行文件路径 exec=$(zenity --entry \ --title="添加可执行文件的绝对路径" \ --text="应用路径:" \ --entry-text "$HOME") if test $exec ;then if [ ! -f $exec ];then zenity --error --text="没有找到可执行文件,请检查路径!" return fi else zenity --warning --text="没有输入,将会退出此次配置!" return fi #设置应用图标 icon=$(zenity --entry \ --title="添加应用图标的绝对路径" \ --text="图标路径:" \ --entry-text "$HOME") if test $icon ;then if [ ! -f $icon ];then zenity --error --text="没有找到文件,请检查路径!" return fi else zenity --warning --text="没有输入,将会退出此次配置!" return fi echo -e "[Desktop Entry]">$FILE echo -e "Name=$name_es">>$FILE echo -e "Exec=$exec">>$FILE echo -e "Icon=$icon">>$FILE echo -e "Terminal=false">>$FILE echo -e "Type=Application">>$FILE echo "创建文件完成" #信息对话框 zenity --info --text="文件创建已完成!\n\ 请您查看桌面上是否已经正常显示你刚刚添加的应用,\n\ 若没有显示,请删除文件再来一次。\n \ 如果你需要将应用添加到开始菜单栏,请在终端执行 \n \ sudo cp $FILE $lu/$name_es.desktop 。" } mkdesktop_w(){ #文本信息框,提示安装 FILE_lince=/tmp/file_config_temp_cache echo " 该脚本用于deepin下安装程序后菜单中没有启动图标时创建desktop文件,注意请使用root权限运行该脚本。新建的桌面应用名为.desktop文件,请你新建的时候不要删除默认的这个后缀。如您已经清楚,请勾选下面的选择框,并确定运行该脚本。">$FILE_lince zenity --text-info \ --title="说明" \ --filename=$FILE_lince \ --checkbox="我清楚并确定开始运行!" case $? in 0) echo "准备处理...............";; 1) `rm -f $FILE_lince` #删除临时文件 return ;; -1) echo "发生意外错误。" `rm -f $FILE_lince` #删除临时文件 return ;; esac #文件保存对话框 lu="/usr/share/applications" #设置应用名称 name_es=$(zenity --entry \ --title="输入应用名称" \ --text="应用名称:" \ --entry-text "app") FILE="$HOME/Desktop/$name_es.desktop" if [ -f $FILE ];then zenity --error --text="含有同名应用!" return fi echo $FILE if test ! $name_es ;then zenity --error --text="输入有误!" return fi #设置应用执行文件路径 exec=$(zenity --file-selection --title="选择可执行文件" &) if test $exec ;then if [ ! -f $exec ];then zenity --error --text="没有找到可执行文件,请检查路径!" return fi else zenity --warning --text="没有输入,将会退出此次配置!" return fi #设置应用图标 icon=$(zenity --file-selection --title="选择应用图标" &) if test $icon ;then if [ ! -f $icon ];then zenity --error --text="没有找到文件,请检查路径!" return fi else zenity --warning --text="没有输入,将会退出此次配置!" return fi echo -e "[Desktop Entry]">$FILE echo -e "Name=$name_es">>$FILE echo -e "Exec=$exec">>$FILE echo -e "Icon=$icon">>$FILE echo -e "Terminal=false">>$FILE echo -e "Type=Application">>$FILE echo "创建文件完成" #提示是否将应用加入开始菜单栏目 ok=$(zenity --question --text="你时是否还需要将应用加入开始菜单栏?" && echo $? || echo 1) test $ok -eq 0 && sudo cp $FILE $lu/$name_es.desktop || echo "放弃加入开始菜单栏!" #信息对话框 zenity --info --text="文件创建已完成!请您查看桌面上和开始菜单栏上是否已经正常显示你刚刚添加的应用,若没有显示,请删除文件再来一次。" } ##################################### # ########## 调用主函数 main exit 0 ```