在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
```
- 图片处理
- 调整图片像素大小
- Python控制摄像头拍照
- 文件操作
- 提取文件名,扩展名
- 查找文件
- ls列出目录,文件
- shell解析json串
- 读取文件第n行内容
- 将变量写入文件和从文件读取变量的一中方法
- shell操作二进制文件
- 命令行将ppt转换为pdf
- python读取串口数据
- 查最近修改的文件
- awk的一些操作
- 输入输出
- 判断输入是否为数字
- 获取脚本输入的第 i 个参数
- column实现输出列表对齐
- 串口调试脚本
- 按键实时检测
- 网络脚本
- 基于Python的TCP客户端
- bash将字符转换为urlencode
- 挂载远程文件夹到本地
- 其他功能
- shell随机产生某一个范围内的整数
- 删除、替换字符串中指定的字符
- 获取时间日期并打印
- 字符串反转
- 实用功能
- 自定义函数模板
- shell中包含另一个脚本文件实现include的方法
- Bash下实现自定义指令的几种方法
- 根据文件类型自动执行脚本
- 命令行运行matlab
- 项目引导main.sh脚本
- 新建文件模板脚本
- bash实现读取和改写ini文件
- 添加当前路径到fish shell环境变量
- 查询进程并杀死进程
- 带界面的身份验证
- 常用软件
- 基本软件
- 我喜欢的软件
- 自用带有界面的系统修复工具-repair
- 解析xml文件