<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ` `Zenity是一個開源和跨平臺的應用程序,它在命令行中顯示GTK +對話框并使用shell腳本。 ` `**GNU Linux**的操作系統建立在非常強大的**內核**稱為Linux。Linux以其命令行操作而聞名。隨著Linux在日常和桌面計算中的發明,nix保持不再偏向命令行,它同樣是圖形化和開發圖形應用程序保持不再是一個困難的任務。 ![](https://img.kancloud.cn/a7/89/a789daf636550bef776a782f83d73a28_709x461.png) ## Zenity是什么 ` `**enity**是一個開源和顯示**GTK +對話框**的命令行和使用shell腳本一個跨平臺的應用程序。它允許在圖形框中向/從shell請求和呈現信息。該應用程序允許您在命令行中創建圖形對話框,并使用戶和shell之間的交互非常容易。 ` `還有其他的替代品,但沒有比zenity簡單的,特別是當你不需要復雜的編程。Zenity,一個工具,你必須有你的手。 ## Zenity特性 1. FOSS軟件 2. 跨平臺應用程序 3. 允許GTK +對話框執行 4. 命令行工具 5. 在Shell腳本中的支持 ## 用處 1. 輕松創建GUI 2. 比其他復雜工具更少的功能 3. 使shell腳本能夠與GUI用戶交互 4. 對于圖形用戶交互,可以進行簡單的對話創建 ## 在Linux中安裝Zenity ` `**Zentity**默認安裝或者在今天大多數的標準Linux發行庫可用。您可以通過執行以下命令檢查是否安裝到您的機器上。 ~~~ yhp@yhp-PC:~$ zenity --version 3.22.0 ~~~ ~~~ yhp@yhp-PC:~$ whereis zenity zenity: /usr/bin/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz ~~~ ` `如果它沒有安裝,您可以使用如下**apt**或**Yum**命令進行安裝。 ~~~ ravisaive@howtoing:~$ sudo apt-get install zenity [on Debian based systems] root@howtoing:~# yum install zenity [on RedHat based systems] ~~~ ` `此外,您還可以從源文件建立它,使用下面的鏈接下載最新**的zenity**源代碼包。 [http://ftp.gnome.org/pub/gnome/sources/zenity/](http://ftp.gnome.org/pub/gnome/sources/zenity/) ## Zenity基本對話框 ` `一些**的zenity**的基本對話框,它可以直接在命令行調用的。 ### 1.快速日歷對話框怎么樣? ~~~ yhp@yhp-PC:~$ zenity --calendar ~~~ ![](https://img.kancloud.cn/12/64/1264bcb004f7d18ef4399adbc5ac9cff_185x339.png) ### 2.錯誤對話框 ~~~ yhp@yhp-PC:~$ zenity --error ~~~ ![](https://img.kancloud.cn/71/03/71034883ed665e9a8d83270cf44ff180_168x169.png) ### 3.一般文本輸入對話框 ~~~ yhp@yhp-PC:~$ zenity --entry ~~~ ![](https://img.kancloud.cn/04/94/0494750c6e7ee5752624d118d4299985_192x146.png) ### 4.信息對話框 ~~~ yhp@yhp-PC:~$ zenity --info ~~~ ![](https://img.kancloud.cn/51/e0/51e05719dfa705f36097cc32a436367c_192x195.png) ### 5.問題對話框 ~~~ yhp@yhp-PC:~$ zenity --question ~~~ ![](https://img.kancloud.cn/b7/c0/b7c0adf05ca7bb48b137d6780ff46c6c_699x254.png) ### 6.進度欄 ~~~ yhp@yhp-PC:~$ zenity --progress ~~~ ![](https://img.kancloud.cn/2b/ad/2bad2902e1b035472acc355ce4720f65_373x163.png) ### 7.縮放對話框 ~~~ yhp@yhp-PC:~$ zenity --scale ~~~ ![](https://img.kancloud.cn/ea/95/ea95e1ff0400f0b66b8098c2df7a9d4a_299x144.png) ### 8.密碼對話框 ~~~ yhp@yhp-PC:~$ zenity --password ~~~ ![](https://img.kancloud.cn/49/1c/491c29528bbf6ee5eed705bb6bc08a54_264x193.png) ### 9.窗體對話框 ~~~ yhp@yhp-PC:~$ zenity --forms ~~~ ![](https://img.kancloud.cn/3d/33/3d33a34d899b37de88a1bba68e2564cd_189x123.png) ### 10.關于對話 ~~~ yhp@yhp-PC:~$ zenity --about ~~~ ![](https://img.kancloud.cn/a9/0d/a90db4f6cbd8c786fce1cdbe7ddeffb6_427x281.png) ## 創建Shell腳本對話框 ` `現在,我們將使用要討論**的zenity對話框**創建簡單的shell腳本在這里。雖然我們可以通過執行創建一個對話框**的zenity**直接從shell命令(象我們上面那樣),但是我們不能為了獲得一些有意義的結果鏈接兩個對話框。 ` `如果一個交互式對話框從你的輸入,并顯示結果。 ~~~ #!/bin/bash first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) zenity --info --title="Welcome" --text="Mr./Ms. $first" last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last" ~~~ ![](https://img.kancloud.cn/6c/02/6c02e1d82a31b20afdb2420062eecaa2_635x623.png) ## 關于腳本描述 ~~~ #!/bin/bash ~~~ ` `在下面的行中,“first”是一個變量,變量的值在運行時是Generated。 1. 'entry'指的zenity被要求生成一個文本輸入框。 2. '--title'定義生成的文本框的標題。 3. '--text='定義了可在文本輸入框中的文本。 ~~~ first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) ~~~ ` `以下腳本文件的這一行用于生成信息(-info)對話框,標題為“歡迎”和文本“Mr./Ms.first”. ~~~ zenity --info --title="Welcome" --text="Mr./Ms. $first" ~~~ ` `腳本的這一行類似于腳本的行號二,除了這里定義了一個新變量“last”。 ~~~ last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) ~~~ ` `腳本的最后一行再次類似于腳本的第三行,它生成信息對話框,其中包含變量'$ first'和'$ last'。 ~~~ zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last" ~~~ ` `有關如何創建一個使用shell腳本自定義對話框的更多信息,請訪問下面的參考頁**的zenity。** [https://help.gnome.org/users/zenity/stable/](https://help.gnome.org/users/zenity/stable/) ## Zenity 中文手冊 要看zenity參數用法,打zenity --help或man zenity Usage: zenity [OPTION...] ### 對話框選項 * --calendar 顯示日歷對話框 * --entry 顯示文字輸入欄對話框 * --error 顯示錯誤信息對話框 * --file-selection 顯示文件選擇對話框 * --info 顯示信息對話框 * --list 顯示清單對話框 * --progress 顯示進度指示窗 * --question 顯示提問信息對話框 * --text-info 顯示文字資信對話框 * --warning 顯示警告信息對話框 ### 一般選項 * --title=標題 指定對話框的標題 * --window-icon=圖示路徑 指定視窗使用的圖示 * --width=寬度 指定寬度 * --height=高度 指定高度 * ### 日歷選項 * --text=STRING 指定對話框中的文字 * --day=INT 指定日歷中的日期 * --month=INT 指定日歷中的月份 * --year=INT 指定日歷中的年份 * --date-format=STRING 指定回傳的日期格式 ### 文字輸入欄選項 * --text=STRING 指定對話框中的文字 * --entry-text=STRING 指定輸入欄中的文字 * --hide-text 隱藏輸入欄中的文字 ### 錯誤信息選項 * --text=STRING 指定對話框中的文字 ### 有關文件選擇的選項 * --filename=文件名稱 指定文件名稱 * --multiple 允許同時選擇多個文件 * --separator=分隔字符 指定分隔輸出結果的字符。 ### 信息選項 * --text=STRING 指定對話框中的文字 ### 清單選項 * --column=STRING 指定欄位標題 * --checklist 第一欄使用獨立選擇按鈕 * --radiolist 第一欄使用多項選擇按鈕 * --separator=分隔字符 指定分隔輸出結果的字符 * --editable 可以更改文字 ### 進度選項 * --text=STRING 指定對話框中的文字 * --percentage=INT 指定開始時的百份比數值 * --pulsate 填滿進度列 * --auto-close 當進度達到100% 時關閉對話框 ### 提問選項 * --text=STRING 指定對話框中的文字 ### 文字選項 * --filename=文件名稱開啟文件 * --editable 可以更改文字 ### 警告信息選項 * --text=STRING 指定對話框中的文字 ### GTK+ 選項 * --gdk-debug=標簽 準備設定的gdk 調試標簽 * --gdk-no-debug=標簽 準備去除的gdk 調試標簽 * --display=畫面 準備使用的 X 畫面 * --sync 進行 X 同步呼叫 * --name=名稱 視窗總管所需的程式名稱 * --class=類別 視窗總管所需的程式類別名稱 * --gxid-host=主機 * --gxid-port=端口號 * --gtk-debug=標簽 準備設定的gtk+ 調試標簽 * --gtk-no-debug=標簽 準備去除的gtk+ 調試驗標簽 * --g-fatal-warnings 將所有警告信息作為嚴重錯誤處理 * --gtk-module=模塊 載入額外的 Gtk 模塊 ### 其它選項 * --about 關于 zenity * --version 顯示版本 ### 求助選項 * -?, --help Show this help message * --usage Display brief usage message ## zenity圖形界面之信息對話框和單復選對話框 ``` #!/bin/bash CD="cd" LS="ls" RM="rm" CP="cp" FIND="find" GREP="grep" OTHERS="others" ## 自定義函數1,不傳遞參數 cdFunction() { ##2,信息對話框 zenity --info --width 300 --height 200 --text="用法:cd (參數),進入到某個目錄中,cd ..是返回到上一級目錄,cd ../..是返回到上上一級目錄,cd(回車) 進入用戶主目錄,cd ~進入用戶主目錄,cd -返回進入此目錄之前所在的目錄,cd !$把上個命令的參數作為cd參數使用。" } lsFunction() { zenity --info --width 300 --height 200 --text="用法:ls (選項) (參數),選項-l,所有輸出信息用單列格式輸出,不輸出為多列,選項-t,用文件和目錄的更改時間排序,參數一般為文件或者目錄。" } rmFunction() { zenity --info --width 300 --height 200 --text="用法:rm (選項) (參數),選項-f,即使原檔案屬性設為唯讀,也可以刪除,無需逐一詢問,選項-r,將目錄及以下之檔案逐一刪除。" } cpFunction() { zenity --info --width 300 --height 200 --text="用法:cp (選項) (參數),選項-a,這個選項通常在復制目錄時使用,它保留鏈接、文件屬性,并復制目錄下的所有內容,選項-r,若給出的源文件是一個目錄文件,此時將復制該目錄下所有的子目錄和文件。" } ## 自定義函數2,傳遞參數 checkFunction() { declare i if [ $1 == 1 ] then echo $2 else tmp=$2 for((i=0;i<$1;i++)) do str=${tmp%%|*} tmp=${tmp#*|} echo $str done fi } ########## function 1 while((1)) do ##1,列表單選框 select_command=$(zenity --list --radiolist --width 300 --height 400 --text="linux 常見命令" --column="選擇" --column="內容列表" TRUE $CD FALSE $LS FALSE $RM FALSE $CP); ## 處理自定義函數的結果 if [ "$select_command" == "$CD" ] then cdFunction elif [ "$select_command" == "$LS" ] then lsFunction elif [ "$select_command" == "$RM" ] then rmFunction elif [ "$select_command" = "$CP" ] then cpFunction else break fi done ########## function 2 while((1)) do ##2,列表復選框 select_option=$(zenity --list --checklist --width 300 --height 400 --text="查找命令" --column="選擇" --column="內容列表" FALSE $FIND FALSE $GREP FALSE $LS FALSE $OTHERS); if [ "$select_option" == "$FIND|$GREP|$LS|$OTHERS" ] then checkFunction 4 $select_option elif [ "$select_option" == "$FIND|$GREP|$LS" ] then checkFunction 3 $select_option elif [ "$select_option" == "$FIND|$GREP|$OTHERS" ] then checkFunction 3 $select_option elif [ "$select_option" == "$FIND|$LS|$OTHERS" ] then checkFunction 3 $select_option elif [ "$select_option" == "$GREP|$LS|$OTHERS" ] then checkFunction 3 $select_option elif [ "$select_option" == "$FIND|$GREP" ] then checkFunction 2 $select_option elif [ "$select_option" == "$FIND|$LS" ] then checkFunction 2 $select_option elif [ "$select_option" == "$FIND|$OTHERS" ] then checkFunction 2 $select_option elif [ "$select_option" == "$GREP|$LS" ] then checkFunction 2 $select_option elif [ "$select_option" == "$GREP|$OTHERS" ] then checkFunction 2 $select_option elif [ "$select_option" == "$LS|$OTHERS" ] then checkFunction 2 $select_option elif [ "$select_option" == "$FIND" ] then checkFunction 1 $select_option elif [ "$select_option" == "$GREP" ] then checkFunction 1 $select_option elif [ "$select_option" == "$LS" ] then checkFunction 1 $select_option elif [ "$select_option" == "$OTHERS" ] then checkFunction 1 $select_option else break fi done exit 0 ``` ![](https://img.kancloud.cn/53/bb/53bb9dddba8b5c23cd067ca840e28adc_748x618.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看