在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文件