成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Ubuntu shell編程在Linux控制臺(tái)運(yùn)行

系統(tǒng) Linux
OK,現(xiàn)在我們可以通過Ubuntu shell編程只使用Ubuntu shell腳本來顯示一個(gè)簡(jiǎn)單GUI程序了。比如在Ubuntu下你可能不得不添加公共軟件倉庫地址以獲得一個(gè)對(duì)應(yīng)的軟件版本。

Ubuntu shell還是比較常用的,于是我研究了一下Ubuntu shell,在這里拿出來和大家分享一下,希望對(duì)大家有用。在我們結(jié)束Ubuntu shell腳本討論之前,有一個(gè)雖然不是Ubuntu shell的一部分但卻有更多的特性,尤其對(duì)于Ubuntu shell編程來說使用也非常普遍,因此我們將在此對(duì)它做一番了解。

如果我們知道我們的腳本將只在Linux控制臺(tái)運(yùn)行,有一種簡(jiǎn)潔的方法可以用來改善我們的腳本特色,它就是dialog,一個(gè)實(shí)用程序命令。該命令雖然使用文本模式圖形和顏色,但看起來依舊有著令人愉悅的圖形色彩。

注意:在一些發(fā)行版中,dialog不是默認(rèn)安裝的。比如在Ubuntu下你可能不得不添加公共軟件倉庫地址以獲得一個(gè)對(duì)應(yīng)的軟件版本。另外,在一些發(fā)行版中,我們可能會(huì)發(fā)現(xiàn)在其中已經(jīng)安裝了一個(gè)叫g(shù)dialog的程序,看起來十分類似,不過它是基于GNOME用戶界面來顯示它的會(huì)話,只是返回來的是一個(gè)真正的圖形界面。

整個(gè)dialog的思想都很簡(jiǎn)單——只是一個(gè)有著種類繁多的參數(shù)和選項(xiàng)的單一程序,而且這些參數(shù)和選項(xiàng)允許你用來顯示不同種類的圖形方框,所顯示的范圍也只是有著簡(jiǎn)單的Yes/No的輸入方框以及甚至還擁有菜單選擇。這個(gè)工具一般在用戶進(jìn)行輸入操作之后返回,并且返回的結(jié)果可以由返回的狀態(tài)或者是通過取回標(biāo)準(zhǔn)錯(cuò)誤流輸入的文本得到。

在我們深入了解之前,先讓我們看一個(gè)簡(jiǎn)單的dialog運(yùn)用。我們直接從命令行通過使用dialog創(chuàng)建一個(gè)簡(jiǎn)單的消息框:dialog --msgbox "Hello World" 9 18

之后在屏幕上將顯示一個(gè)帶有OK對(duì)話框的圖形消息框。既然我們已經(jīng)知道了dialog的操作是如此簡(jiǎn)單,之后讓我們盡可能地了解更多與之相關(guān)的內(nèi)容。下表為我們描述了我們可以創(chuàng)建的dialog的主要類型:

  1. Type Option Used to Create Type Meaning   
  2. Check boxes --checklist 允許我們顯示列表項(xiàng),且每一個(gè)都能被單獨(dú)選擇   
  3. Info boxes --infobox 不用清屏就能直接返回的簡(jiǎn)單對(duì)話框   
  4. Input boxes --inputbox 允許用戶以文本方式輸入   
  5. Menu boxes --menu 允許用戶從一列中選擇單一的一項(xiàng)   
  6. Message boxes --msgbox 向用戶顯示一條帶有OK按鈕的信息   
  7. Radio selection boxes --radiolist 允許用戶從一列中選擇一個(gè)選項(xiàng)   
  8. Text boxes --textbox 允許我們?cè)谝粋€(gè)有滾動(dòng)軸的框中顯示文件內(nèi)容   
  9. Yes/No boxes --yesno 允許你問一個(gè)問題,之后用戶可以選擇yes或no  

一些額外的dialog對(duì)話框同樣也是很有用的(比如計(jì)量器和密碼輸入對(duì)話框)。如果你想要了解更多不太常用的dialog類型,可以查閱相關(guān)的手冊(cè)指南。為了得到允許文本輸入或選擇的對(duì)話框的任何類型的輸出.

我們不得不捕獲標(biāo)準(zhǔn)錯(cuò)誤流,通常我們都直接將它送到一個(gè)臨時(shí)文件中,之后再對(duì)它進(jìn)行處理。而為了得到y(tǒng)es/no類型問題的結(jié)果,我們只需看退出代碼,通常設(shè)計(jì)良好的程序都將返回0代表成功,而返回1則代表失敗。

所有的dialog類型都有許多附加參數(shù)來用于控制,比如dialog所呈現(xiàn)的大小以及形狀。我們?cè)谙卤砹谐隽嗣恳环N類型所需要的不同參數(shù),之后我們將在命令行中示范操作他們中的一部分。最后,你將會(huì)看到在一個(gè)簡(jiǎn)單的包含幾個(gè)dialog的程序。

  1. Dialog Type Parameters   
  2. --checklist text height width list-height [tag text status]...   
  3. --infobox text height width   
  4. --inputbox text height width [initial string]   
  5. --menu text height width menu-height [tag item]...   
  6. --msgbox text height width   
  7. --radiolist text height width list-height [tag text status]...   
  8. --textbox filename height width   
  9. --yesno text height width  

此外,所有的diglog類型都可以攜帶幾個(gè)選項(xiàng),我們不會(huì)在此將它們一一列出,除了需要注意這兩個(gè):
--title允許你為對(duì)話框指定一個(gè)標(biāo)題
--clear使用它就是為了清屏
若想了解所有的選項(xiàng),請(qǐng)查閱相關(guān)的手冊(cè)指南。

下面讓我來看一下一個(gè)有點(diǎn)復(fù)雜的例子。一旦你理解了這個(gè)例子,其他的dialog實(shí)例將變得容易。在這個(gè)例子中,你創(chuàng)建了一個(gè)帶有標(biāo)題“Check me”以及指令“Pick Numbers”的清單類型對(duì)話框。這個(gè)對(duì)話框高15個(gè)字符,寬25個(gè)字符,并且每個(gè)選項(xiàng)都要占領(lǐng)3個(gè)字符的高度。最后,你至少在顯示這些列出的選項(xiàng)時(shí),需要沿著一個(gè)默認(rèn)的on/off選擇。

diag --title "Check me" --checklist "Pick Numbers" 15 25 3 1 "one" "off" 2 "two" "on" 3 "three" "off"

原理:在這個(gè)示例中,參數(shù)--checklist指定了你將創(chuàng)建一個(gè)清單類型對(duì)話框。之后你使用--title選項(xiàng)來設(shè)置標(biāo)題“Check me”,而接下來的參數(shù)則提示“Pick Numbers”的信息。然后你開始設(shè)置對(duì)話框的大小,15行高25字符寬,并有3行高的高度被用于菜單的顯示。這雖然不是一個(gè)完美的尺寸,但足夠你看到所有的東西都被呈現(xiàn)出來。

選項(xiàng)的使用看起來有點(diǎn)錯(cuò)綜復(fù)雜,但你需要全部記住的只是每個(gè)菜單項(xiàng)目都只有三個(gè)數(shù)值:標(biāo)號(hào)、文本以及狀態(tài)。第一個(gè)項(xiàng)目為1,顯示為“one”并且設(shè)置為“off”。之后的菜單項(xiàng)目2顯示為“two”,設(shè)置為“on”,即被此項(xiàng)被選中了。最后菜單項(xiàng)目3顯示為“three”,設(shè)置為“off”。

很容易,對(duì)不對(duì)?我們只需嘗試將他們?cè)诿钚兄羞\(yùn)行就可以輕易地看出它們是怎樣被使用的。為了將這些對(duì)話框放入一個(gè)程序中,我們需要能夠訪問用戶所輸入的結(jié)果,這是非常容易的。只需為文本輸入將標(biāo)準(zhǔn)錯(cuò)誤流重定向,或者檢查系統(tǒng)環(huán)境變量$?,這樣你就可以再次調(diào)用先前命令的退出狀態(tài)。

下面我們看一個(gè)使用dialog的更復(fù)雜一些的例子。我們先編寫一個(gè)簡(jiǎn)單的程序questions,它用來接受用戶響應(yīng)的記錄:

1.開始先顯示一個(gè)簡(jiǎn)單的對(duì)話框以告訴用戶發(fā)生了什么,你不需要得到相關(guān)的結(jié)果或獲取任何用戶輸入,因此我們可以這樣簡(jiǎn)單地編寫:

  1. #!/bin/sh  
  2. # Ask some questions and collect the answer  
  3. dialog --title "Questionnaire" --msgbox "Welcome to my simple survey" 9 18 

2.通過一個(gè)簡(jiǎn)單的yes/no對(duì)話框詢問用戶是否繼續(xù)進(jìn)行。通過使用環(huán)境變量$?來檢查用戶所選擇的到底是yes(返回代碼0)還是no。如果他不想繼續(xù)進(jìn)行,我們就會(huì)在退出前使用一個(gè)簡(jiǎn)單的不需要用戶有輸入的信息對(duì)話框:

  1. diag --title "Confirm" --yesno "Are you willing to take part?" 9 18  
  2. if [ $?  != 0 ]; then  
  3. dialog --infobox "Thank you anyway" 5 20  
  4. sleep 2  
  5. dialog --clear  
  6. exit 0  
  7. fi 

3.通過一個(gè)輸入框詢問用戶的名字。重定向標(biāo)準(zhǔn)錯(cuò)誤流2到一個(gè)臨時(shí)文件_1.txt中,之后通過變量Q_NAME來進(jìn)行處理:

  1. dialog --title "Questionnaire" --inputbox "Please enter your name" 9 30 2>_1.txt  
  2. Q_NAME=$(cat _1.txt) 

4.在此處你將設(shè)置菜單項(xiàng)目為四個(gè)不同的選項(xiàng),之后你再次重定向標(biāo)準(zhǔn)錯(cuò)誤流并將它置入一個(gè)變量中:

  1. dialog --menu "$Q_NAME, what music do you like best?" 15 30 4 1 "Classical" 2 "Jazz" 3 "Country" 4 "Other" 2>_1.txt  
  2. Q_MUSIC=(cat _1.txt) 

5.根據(jù)所獲得的變量Q_MUSIC得到存儲(chǔ)在臨時(shí)文件_1.txt中的用戶所選擇的數(shù)字,你可以這樣來設(shè)置結(jié)果:

  1. if [ "$Q_MUSIC" = "1" ]; then  
  2. dialog --title "Likes Classical" --msgbox "Good choice!" 12 25  
  3. else  
  4. dialog --title "Doesn't like Classical" --msgbox "What a shame!" 12 25  
  5. fi 

6.最后,清除最終的對(duì)話框,之后退出程序:

  1. sleep 2  
  2. dialog --clear  
  3. exit 0 

OK,現(xiàn)在我們可以通過Ubuntu shell編程只使用Ubuntu shell腳本來顯示一個(gè)簡(jiǎn)單GUI程序了。

注:如果你將運(yùn)行于一個(gè)基于GNOME的GUI且只在其中使用終端會(huì)話的話,你可以使用gdialog命令來替代dialog。這兩個(gè)命令擁有一樣的參數(shù),所以你完全可以使用gdialog替代dialog來執(zhí)行相同的代碼。

【編輯推薦】

  1. Ubuntu Shell命令awk程序中使用
  2. 概括簡(jiǎn)介Ubuntu shell命令操作
  3. Ubuntu 10.04舊貌換新顏:LOGO、主題變臉
  4. Ubuntu jsp平臺(tái)使用JDBC來連接MySQL數(shù)據(jù)庫
  5. Ubuntu kernel設(shè)備都被隱含地映射到/dev目錄
責(zé)任編輯:佚名 來源: csdn
相關(guān)推薦

2009-07-29 10:22:00

Ubuntu虛擬控制臺(tái)linux

2023-02-02 09:33:04

Linux控制臺(tái)程序

2011-07-06 15:25:33

Windows控制臺(tái)

2010-03-22 18:42:23

2011-04-20 10:15:02

Linuxconsole口

2011-07-26 18:13:53

控制臺(tái)

2010-12-21 14:32:43

操作控制臺(tái)

2010-03-01 13:54:57

2010-12-28 10:36:41

Linux

2011-07-01 18:35:17

QT 控制臺(tái)

2011-08-08 10:55:14

IOS 控制臺(tái) Consol

2011-06-10 15:21:25

Qt 控制臺(tái)

2009-06-15 09:50:34

JBoss控制臺(tái)

2018-10-30 09:20:00

Linux控制臺(tái)命令

2019-08-23 09:58:18

Linux控制臺(tái)命令

2018-09-25 10:15:30

Linux虛擬控制鼠標(biāo)

2022-08-08 09:34:33

Linux串行控制臺(tái)

2009-12-25 09:49:32

LinuxShell編程運(yùn)行Shell程序

2009-03-04 10:10:49

控制臺(tái)桌面虛擬化Xendesktop

2021-06-17 11:34:54

SLS 阿里云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美一区二区免费 | 久久精品色欧美aⅴ一区二区 | 久久精品成人 | 中文天堂在线一区 | www一级片| 国产精品中文在线 | 成人免费影院 | 伊人色综合久久天天五月婷 | 国产精品一区二区三区久久久 | 很很干很很日 | 精品国产伦一区二区三区观看方式 | 免费一区二区三区在线视频 | 在线观看午夜视频 | 亚洲成人一级 | av在线播放不卡 | 欧美乱大交xxxxx另类电影 | 天天插天天射天天干 | 粉嫩粉嫩芽的虎白女18在线视频 | 99久久夜色精品国产亚洲96 | 久久免费视频在线 | 国产一区 | 成人美女免费网站视频 | 粉嫩粉嫩芽的虎白女18在线视频 | 国产欧美精品一区二区色综合朱莉 | 欧美国产一区二区 | 一级黄在线观看 | 欧美一级免费看 | 二区中文| 日韩精品在线看 | 亚洲一区二区视频在线观看 | 天堂精品 | 国产美女自拍视频 | 国产a区| 日韩av一区二区在线观看 | 国产一区二 | 亚洲精品视频三区 | 久久精品久久久 | 91麻豆精品国产91久久久更新资源速度超快 | 国产精品亚洲一区二区三区在线 | 91精品国产乱码久久久 | 国产欧美精品一区二区三区 |