欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何使用shell創(chuàng)建文本菜單與窗口部件-創(chuàng)新互聯(lián)

這篇文章主要介紹了如何使用shell創(chuàng)建文本菜單與窗口部件,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站是一家專業(yè)從事網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計(jì)公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,創(chuàng)新互聯(lián)建站依托強(qiáng)大的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營(yíng)經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!

創(chuàng)建文本菜單


創(chuàng)建交互式shell腳本最常用的方法是使用菜單,它提供了各種選項(xiàng)幫助腳本用戶了解腳本能做到的和不能做的。

shell腳本菜單的核心是case命令,該命令會(huì)根據(jù)用戶在菜單上的選擇來(lái)執(zhí)行特定命令。

下面我們逐步了解和創(chuàng)建基于菜單的shell腳本的步驟。

創(chuàng)建菜單布局

第一步是決定在菜單上顯示哪些元素以及想要顯示的布局方式。

在創(chuàng)建菜單前,通常先清空顯示器上已有的內(nèi)容。這樣能在干凈的,沒(méi)有干擾的環(huán)境中顯示菜單了。

clear命令使用當(dāng)前終端的terminfo數(shù)據(jù)來(lái)清理出現(xiàn)在屏幕上的文字。運(yùn)行clear命令后可以使用echo命令顯示菜單元素。

默認(rèn),echo命令只顯示可打印的文本字符。而在創(chuàng)建菜單時(shí)一些非文本字符也非常有用,比如制表符和換行符。我們需要添加-e選項(xiàng)使得echo命令能解析包含在其中的非文本字符。

例如,

wsx@wsx:~/tmp$ echo -e "1.\tDisplay disk space"
1. Display disk space

這對(duì)于格式化菜單項(xiàng)布局非常方便,只需要幾個(gè)echo命令就可以創(chuàng)建一個(gè)還不錯(cuò)的菜單。

clear
echo
echo -e "\t\t\tSys Admin Menu\n"
echo -e "\t1. Display disk space"
echo -e "\t2. Display logged on users"
echo -e "\t3. Display memory usage"
echo -e "\t0. Exit menu\n\n"
echo -en "\t\tEnter an option: "

最后一行-en選項(xiàng)去掉末尾換行符使得菜單更專業(yè)點(diǎn),光標(biāo)會(huì)在行尾等待用戶輸入。

創(chuàng)建菜單的最后一步是獲取用戶輸入。這一步用read命令。因?yàn)槲覀冎黄谕脩羰褂脝巫址斎耄诿罴?n選項(xiàng)進(jìn)行限定。這樣用戶只需要輸入一個(gè)數(shù)字,不用摁回車鍵。

read -n 1 option

創(chuàng)建菜單函數(shù)

shell腳本菜單選項(xiàng)作為一組獨(dú)立的函數(shù)實(shí)現(xiàn)起來(lái)更為容易。要做到這一點(diǎn),你要為每個(gè)菜單項(xiàng)創(chuàng)建獨(dú)立的shell函數(shù)。第一步是決定你希望腳本執(zhí)行那些功能,然后將這些功能以函數(shù)的形式放在代碼中。

通常我們會(huì)為還沒(méi)有實(shí)現(xiàn)的函數(shù)先創(chuàng)建一個(gè)樁函數(shù),它是一個(gè)控函數(shù),或者只有一個(gè)echo語(yǔ)句,說(shuō)明最終這里需要什么內(nèi)容。

function diskspace {
 clear
 echo "This is where the diskspace commands will do"
}

這允許菜單在我實(shí)現(xiàn)某個(gè)函數(shù)時(shí)仍然能正常操作。不需要我們寫出所有函數(shù)之后才能讓菜單投入使用。函數(shù)從clear命令開始,這樣我們就能在一個(gè)干凈的屏幕上執(zhí)行該函數(shù),不會(huì)收到原先菜單的干擾。

另外,將菜單布局本身作為一個(gè)函數(shù)來(lái)創(chuàng)建有利于菜單制作。

function menu {
 clear
 echo
 echo -e "\t\t\tSys Admin Menu\n"
 echo -e "\t1. Display disk space"
 echo -e "\t2. Display logged on users"
 echo -e "\t3. Display memory usage"
 echo -e "\t0. Exit menu\n\n"
 echo -en "\t\tEnter an option: "
 read -n 1 option
}

這樣我們能在任何時(shí)候調(diào)用該函數(shù)以此重現(xiàn)菜單。

添加菜單邏輯

下一步我們需要?jiǎng)?chuàng)建程序邏輯將菜單布局和函數(shù)結(jié)合起來(lái)。這需要使用case命令。

case命令應(yīng)該根據(jù)菜單中輸入的字符來(lái)調(diào)用相應(yīng)的函數(shù),用case命令字符星號(hào)來(lái)處理所有不正確的菜單項(xiàng)。

下面展示了典型菜單的case用法:

menu
case $option in
0)
 break ;;
1) 
 diskspace ;;
2) 
 whoseon ;;
3) 
 memusage ;;
*)
 clear
 echo "Sorry, wrong selection";;
esac

這里首先調(diào)用menu函數(shù)清空屏幕并顯示菜單。menu函數(shù)中的read命令會(huì)一直等待,知道用戶在鍵盤上鍵入一個(gè)字符。然后case命令會(huì)接管余下的處理過(guò)程,基于字符調(diào)用相應(yīng)的函數(shù)。

整合shell腳本菜單

現(xiàn)在讓我們將前面的步驟全部組合起來(lái),看看它們是如何協(xié)作的。

這是一個(gè)完整的菜單腳本例子:

wsx@wsx:~/tmp$ cat test14
#!/bin/bash
# simple script menu

function diskspace {
 clear
 df -k
}

function whoseon {
 clear
 who
}

function memusage {
 clear
 cat /proc/meminfo
}

function menu {
 clear
 echo
 echo -e "\t\t\tSys Admin Menu\n"
 echo -e "\t1. Display disk space"
 echo -e "\t2. Display logged on users"
 echo -e "\t3. Display memory usage"
 echo -e "\t0. Exit menu\n\n"
 echo -en "\t\tEnter an option: "
 read -n 1 option
}

while [ 1 ]
do
 menu
 case $option in
 0)
 break ;;
 1)
 diskspace ;;
 2)
 whoseon ;;
 3)
 memusage ;;
 *)
 clear
 echo "Sorry, wrong selection" ;;
 esac
 echo -en "\n\n\t\t\tHit any key to continue"
 read -n 1 line
done
clear

使用:

 Sys Admin Menu

 1. Display disk space
 2. Display logged on users
 3. Display memory usage
 0. Exit menu


 Enter an option:

輸入1:

文件系統(tǒng)   1K-塊  已用  可用 已用% 掛載點(diǎn)
udev    4006080  0 4006080 0% /dev
tmpfs    807220 81004 726216 11% /run
/dev/sda4  305650672 14226064 275828680 5% /
tmpfs   4036100  1724 4034376 1% /dev/shm
tmpfs    5120  4  5116 1% /run/lock
tmpfs   4036100  0 4036100 0% /sys/fs/cgroup
/dev/sda3   524272  4684 519588 1% /boot/efi
tmpfs    807220  52 807168 1% /run/user/1000
tmpfs    807220  16 807204 1% /run/user/125
/dev/sda2  421886972 23340376 398546596 6% /media/wsx/存儲(chǔ)


 Hit any key to continue

其他都可以自己測(cè)試一下,我就不贅言了。

使用select命令

select命令只需要一條命令就可以創(chuàng)建出菜單,然后獲取輸入的答案并自動(dòng)處理。

命令格式如下:

select variable in list
do
 commands
done

list參數(shù)是由空格分隔的文本選項(xiàng)列表,這些列表構(gòu)成了整個(gè)菜單。select命令會(huì)將每個(gè)列表項(xiàng)顯示成一個(gè)帶編號(hào)的選項(xiàng),然后為選項(xiàng)顯示一個(gè)由PS3環(huán)境變量定義的特殊提示符。

wsx@wsx:~/tmp$ cat smenu1 
#!/bin/bash
# using select in the menu

function diskspace {
 clear
 df -k
}

function whoseon {
 clear
 who
}

function memusage {
 clear
 cat /proc/meminfo
}

PS3="Enter an option: "
select option in "Display disk space" "Display logged on users" "Display memory usage" "Exit program"
do
 case $option in
 "Exit program")
 break ;;
 "Display disk space")
 diskspace ;;
 "Display logged on users")
 memusage ;;
 "Display memory usage")
 memusage ;;
 *)
 clear
 echo "Sorry, wrong selection";;
 esac
done
clear

運(yùn)行會(huì)自動(dòng)生成如下菜單項(xiàng):

wsx@wsx:~/tmp$ ./smenu1 
1) Display disk space  3) Display memory usage
2) Display logged on users 4) Exit program
Enter an option:

在使用select命令時(shí),記住存儲(chǔ)在變量中的結(jié)果值是整個(gè)文本字符串而不是跟菜單項(xiàng)相關(guān)聯(lián)的數(shù)字。文本字符串是要在case語(yǔ)句中比較的內(nèi)容。

制作窗口


dialog包能夠用ANSI轉(zhuǎn)義控制字符在文本環(huán)境中創(chuàng)建標(biāo)準(zhǔn)的窗口對(duì)話框。我們可以將這些對(duì)話框融入自己的shell腳本中,借此與用戶進(jìn)行交互。這部分我們來(lái)學(xué)習(xí)如何使用dialog包。

安裝:

sudo apt-get install dialog

dialog包

dialog包使用命令行參數(shù)來(lái)決定生成哪種窗口部件(widget)。部件是dialog包中窗口元素的術(shù)語(yǔ)。

部件描述
calendar提供選擇日期的日歷
checklist顯示多個(gè)選項(xiàng)(其中每個(gè)選項(xiàng)都能打開或關(guān)閉)
form構(gòu)建一個(gè)帶有標(biāo)簽以及文本字段(可以填寫內(nèi)容)的表單
fselect提供一個(gè)文件選擇窗口來(lái)瀏覽選擇文件
gauge顯示完成的百分比進(jìn)度條
infobox顯示一條消息,但不用等待回應(yīng)
inputbox提供一個(gè)輸入文本用的文本表單
inputmenu提供一個(gè)可編輯的菜單
menu顯示可選擇的一系列選項(xiàng)
msgbox顯示一條消息,并要求用戶選擇OK按鈕
pause顯示一個(gè)進(jìn)度條來(lái)顯示暫定期間的狀態(tài)
passwordbox顯示一個(gè)文本框,但會(huì)隱藏輸入的文本
passwordform顯示一個(gè)帶標(biāo)簽的隱藏文本字段的表單
radiolist提供一組菜單選項(xiàng),但只能選擇其中一個(gè)
tailbox用tail命令在滾動(dòng)窗口中顯示文件的內(nèi)容
tailboxbg跟tailbox一樣,但是在后臺(tái)模式中運(yùn)行
textbox在滾動(dòng)窗口中顯示文件的內(nèi)容
timebox提供一個(gè)選擇小時(shí)、分鐘和秒數(shù)的窗口
yesno提供一條帶有Yes和No按鈕的簡(jiǎn)單消息

如上表所見(jiàn),我們可以選擇很多不同的部件。只需要多花點(diǎn)功夫就可以讓腳本看起來(lái)更專業(yè)。

要在命令行上指定某個(gè)特定的部件,需要使用雙破折線格式:

dialog --widget parameters

其中widget是上表中某個(gè)特定的部件,parameters定義了部件窗口的大小以及部件需要的文本。

每個(gè)dialog部件都提供了兩種形式的輸出:

  • 使用STDERR

  • 使用退出狀態(tài)碼

可以通過(guò)dialog命令的退出狀態(tài)碼來(lái)確定用戶選擇的按鈕。如果選擇了Yes或OK按鈕,命令會(huì)返回狀態(tài)碼0。如果選擇了Cancer或No按鈕,命令會(huì)返回狀態(tài)碼1。可用標(biāo)準(zhǔn)的$?變量來(lái)確定dialog部件具體選擇了哪個(gè)按鈕。

如果部件返回了數(shù)據(jù),dialog命令會(huì)將數(shù)據(jù)發(fā)送到STDERR。我們可以用標(biāo)準(zhǔn)的bash shell方法將其重定向到另一個(gè)文件或文件描述符中。

dialog --inputbox "Enter your age:" 10 20 2>age.txt

這條命令將文本框輸入的文本重定向到age.txt文本中。

msgbox部件

msgbox部件是對(duì)話框中最常見(jiàn)的類型。它會(huì)在窗口中顯示一條簡(jiǎn)單的信息,直到用戶點(diǎn)擊OK后消失。

使用格式:

dialog --msgbox text height width

text參數(shù)是要在窗口顯示的字符串,height與width參數(shù)設(shè)定自動(dòng)換行的窗口大小。如果想要在窗口加一個(gè)標(biāo)題,可以使用--title參數(shù),后接作為標(biāo)題的文本。

例子:

dialog --title Testing --msgbox "This is a test" 10 20

輸入命令后,消息框會(huì)顯示在終端上。如果你的終端仿真器支持鼠標(biāo),可以單擊OK來(lái)關(guān)閉對(duì)話框,也可以按下回車鍵。

yesno部件

該部件在窗口底部生成兩個(gè)按鈕:一個(gè)是Yes,一個(gè)是No。用戶可以用鼠標(biāo)、制表符或者鍵盤方向鍵來(lái)切換按鈕。選擇按鈕則使用空格或者回車鍵。

下面是一個(gè)例子:

wsx@wsx:~$ dialog --title "Please answer" --yesno "Is this thing on?" 10 20
# 中間終端有輸出
wsx@wsx:~$ echo $?
0

dialog命令的退出狀態(tài)碼會(huì)根據(jù)用戶選擇的按鈕來(lái)設(shè)置。選擇No返回1,選擇Yes就是0。

inputbox部件

inputbox部件提供了一個(gè)簡(jiǎn)單的文本框區(qū)域來(lái)輸入文本字符串,dialog會(huì)將它傳到STDERR,我們需要重定向獲得輸入。inputbox提供了兩個(gè)按鈕:OK和Cancel。如果選擇了OK,命令退出狀態(tài)碼為0,否則為1。

wsx@wsx:~/tmp$ dialog --inputbox "Enter your age:" 10 20 2>age.txt
wsx@wsx:~/tmp$ cat age.txt 
24

如果你自己運(yùn)行過(guò)的話就會(huì)注意到該值后面沒(méi)有換行符,這讓我們能夠輕松將文本內(nèi)容重定向到腳本變量中,以獲得用戶輸入的值。

textbox部件

textbox部件是在窗口中顯示大量信息的極佳辦法。它會(huì)生成一個(gè)滾動(dòng)窗口來(lái)顯示由參數(shù)所指定的文件中的文本。

wsx@wsx:~/tmp$ dialog --textbox /etc/passwd 15 45

/etc/passwd文件內(nèi)容顯示在可滾動(dòng)的文本窗口中,可以用方向鍵來(lái)左右或上下滾動(dòng)顯示文件的內(nèi)容。窗口底部的行會(huì)顯示當(dāng)前查看文本處于文件中的哪個(gè)位置(百分比)。文本框只包含一個(gè)用來(lái)選擇退出部件的Exit按鈕。

menu部件

我們可以用這個(gè)部件來(lái)創(chuàng)建之前(上一篇筆記)中制作的文本菜單的窗口版本。只要為每個(gè)選項(xiàng)提供一個(gè)選擇標(biāo)號(hào)和文本就行。

wsx@wsx:~/tmp$ dialog --menu "Sys Admin Menu" 20 30 10 1 "Display disk space" 2 "Display users" 3 "Display memory usage" 4 "Exit" 2>test.txt

第一個(gè)參數(shù)定義了菜單的標(biāo)題,之后的兩個(gè)參數(shù)定義了菜單窗口的高和寬,而第四個(gè)參數(shù)則定義了在窗口中一次顯示的菜單項(xiàng)總數(shù)。如果存在更多選擇,則有滾動(dòng)條。

菜單項(xiàng)必須使用菜單對(duì):第一個(gè)元素是用來(lái)選擇菜單項(xiàng)的標(biāo)號(hào)(必須);第二個(gè)元素是菜單中使用的文本。

dialog命令會(huì)將選定(鼠標(biāo)點(diǎn)擊或回車鍵或選擇OK)的菜單項(xiàng)文本發(fā)送到STDERR。

fselect部件

該部件在處理文件名時(shí)非常方便。不用強(qiáng)制用戶鍵入文件名,我們就可以用fselect部件來(lái)瀏覽文件的位置并選擇文件。

使用格式:

wsx@wsx:~/tmp$ dialog --title "Select a file" --fselect $HOME/ 10 50 2>file.txt

第一個(gè)參數(shù)是窗口使用的其實(shí)目錄位置。fselect部件窗口由左側(cè)的目錄列表、右側(cè)的文件列表和含有當(dāng)前選定的文件或目錄的簡(jiǎn)單文本框組成。可以手動(dòng)在文本框鍵入文件名,或者用目錄和文件列表來(lái)選定(使用空格鍵選定)。

dialog選項(xiàng)

除了標(biāo)準(zhǔn)部件,dialog還有大量定制的選項(xiàng)。前面我們使用的title就是一個(gè)。

下面顯示了命令可用的選項(xiàng):

選項(xiàng)描述
–add-widget繼續(xù)下一個(gè)對(duì)話框直到按下Esc或Cancel選項(xiàng)
–aspect ratio直到窗口寬度和高度的寬高比
–backtitle title直到顯示在屏幕頂部背景上的圖標(biāo)
–begin x y指定窗口左上角的起始位置
–cancel-label label指定Cancel按鈕的替代標(biāo)簽
–clear用默認(rèn)的對(duì)話背景色來(lái)清空屏幕內(nèi)容
–colors在對(duì)話文本中嵌入ANSI色彩編碼
–cr-wrap在對(duì)話文本中允許使用換行符并強(qiáng)制換行
–create-rc file將示例配置文件的內(nèi)容復(fù)制到指定的file文件中
–defaultno將yes/no對(duì)話框的默認(rèn)答案設(shè)為no
–default-item string設(shè)定復(fù)選列表、表單或菜單對(duì)話中的默認(rèn)項(xiàng)
–exit-label label指定Exit按鈕的替代標(biāo)簽
–extra-button在OK按鈕和Cancel按鈕之間顯示一個(gè)額外按鈕
–extra-label label指定額外按鈕的替換標(biāo)簽
–help顯示dialog命令的幫助信息
–help-button在OK按鈕和Cancel按鈕后顯示一個(gè)Help按鈕
–help-label label指定Help按鈕的替換標(biāo)簽
–help-status當(dāng)選定Help按鈕后,在幫助信息后寫入多選列表、單選列表或表單信息
–ignore忽略dialog不能識(shí)別的選項(xiàng)
–input-fd fd指定STDIN之外的另一個(gè)文件描述符
–insecure在passwd部件中鍵入內(nèi)容時(shí)顯示星號(hào)
–item-help為多選列表、單選列表或菜單中的每個(gè)標(biāo)號(hào)在屏幕底部添加一個(gè)幫助欄
–keep-window不要清除屏幕上顯示過(guò)的部件
–max-input size指定輸入的較大字符串長(zhǎng)度。默認(rèn)為2048
–nocancel隱藏Cancel按鈕
–no-collapse不要將對(duì)話文本中的制表符轉(zhuǎn)換為空格
–no-kill將tailboxbg對(duì)話放到后臺(tái),并禁止該進(jìn)程的SIGHUP信號(hào)
–no-label label為No按鈕指定替換標(biāo)簽
–no-shadow不要顯示對(duì)話窗口的陰影效果
–ok-label label指定OK按鈕的替換標(biāo)簽
–output-fd fd指定除STDERR之外的另一個(gè)輸出文件描述符
–print-maxsize將對(duì)話窗口的較大尺寸打印到輸出中
–print-size將每個(gè)對(duì)話窗口的大小打印到輸出中
–print-version將dialog的版本號(hào)打印到輸出中
–separate-output一次一行地輸出checklist部件的結(jié)果,不使用引號(hào)
–separator string指定用于分隔部件輸出的字符串
–separate-widget string指定用于分隔部件輸出的字符串
–shadow在每個(gè)窗口右下角繪制陰影
–single-quoted需要時(shí)對(duì)多選列表的輸出采用單引號(hào)
–sleep sec在處理完對(duì)話窗口后延遲指定的秒數(shù)
–stderr將輸出發(fā)送到STDERR(默認(rèn))
–stdout將輸出發(fā)送到STDOUT
–tab-correct將制表符轉(zhuǎn)換為空格
–tab-len n指定一個(gè)制表符占用的空格數(shù)(默認(rèn)為8)
–timeout sec指定無(wú)用戶輸入時(shí),sec秒后退出并返回錯(cuò)誤代碼
–title title指定對(duì)話窗口的標(biāo)題
–trim從對(duì)話文本中刪除前導(dǎo)空格和換行符
–visit-tiems修改對(duì)話窗口制表符的停留位置,使其包括選項(xiàng)列表
–yes-label label為Yes按鈕指定替換標(biāo)簽

--backtitle選項(xiàng)是為腳本中的菜單創(chuàng)建公共標(biāo)題的簡(jiǎn)便辦法。上表提供的強(qiáng)大特性允許我們創(chuàng)建任何需要的窗口。

dialog命令支持運(yùn)行時(shí)配置。該命令會(huì)根據(jù)配置文件模板創(chuàng)建一份配置文件。dialog啟動(dòng)時(shí)會(huì)先去檢查是否設(shè)置了DIALOGRC環(huán)境變量,該變量會(huì)保存配置文件名信息。如果未設(shè)置該變量或未找到該文件,它會(huì)將$HOME/.dialogrc作為配置文件。如果這個(gè)文件還不存在的話就嘗試查找編譯時(shí)指定的GLOBALRC文件,也就是/etc/dialogrc。如果還不存在就用編譯時(shí)的默認(rèn)值。


在腳本中使用dialog命令

必須記住兩件事:

  • 如果有Cancel或No按鈕,檢查dialog命令的退出狀態(tài)碼

  • 重定向STDERR來(lái)獲得輸出值

接下來(lái)是一個(gè)簡(jiǎn)單的實(shí)例,使用dialog部件生成我們之前(上一篇筆記)所創(chuàng)建的系統(tǒng)管理菜單。

wsx@wsx-laptop:~$ cat menu3
#!/bin/bash
# using dialog to create a menu

temp=$(mktemp -t test.XXXXXX)
temp2=$(mktemp -t test2.XXXXXX)

function diskspace {
  df -k > $temp
  dialog --textbox $temp 20 60
}

function whoseon {
  who > $temp
  dialog --textbox $temp 20 50
}

function menusage {
  cat /proc/meminfo > $temp
  dialog --textbox $temp 20 50
}

while [ 1 ]
do
dialog --menu "Sys Admin Menu" 20 30 10 1 "Display disk space" 2 "Display users" 3 "Display memory usage" 0 "Exit" 2> $temp2
if [ $? -eq 1 ]
then
 break
fi

selection=$(cat $temp2)

case $selection in
1)
  diskspace ;;
2)
  whoseon ;;
3)
  memusage ;;
0)
  break ;;
*)
  dialog --msgbox "Sorry, invalid selection" 10 30
esac
done
rm -f $temp 2> /dev/null
rm -f $temp 2> /dev/null

使用while循環(huán)加一個(gè)真值常量創(chuàng)建了一個(gè)無(wú)限循環(huán)來(lái)顯示菜單對(duì)話。當(dāng)執(zhí)行完每個(gè)函數(shù)后,腳本會(huì)返回繼續(xù)顯示菜單。

腳本使用了mktemp命令創(chuàng)建兩個(gè)臨時(shí)文件來(lái)保存dialog命令的數(shù)據(jù)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何使用shell創(chuàng)建文本菜單與窗口部件”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

當(dāng)前標(biāo)題:如何使用shell創(chuàng)建文本菜單與窗口部件-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://chinadenli.net/article38/ehgpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器網(wǎng)站營(yíng)銷建站公司網(wǎng)站改版網(wǎng)站收錄App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)