導航:首頁 > 編程知識 > sell編程菜單交互是什麼

sell編程菜單交互是什麼

發布時間:2025-07-24 15:16:16

linux中設計一個shell腳本程序可以接受命令行輸入的參數執行相應的菜單命令

之所以用到命令行參數,關鍵在於shell腳本需要與運行腳本的人員進行交互。
bash shell提供了命令行參數添加在命令後面的數據值)、命令行選項修改命令行為的單字元值)和直接讀取鍵盤輸入。
1、命令行參數
向shell腳本傳遞數據的最基本方式是使用命令行參數。
1)讀取參數
讀取輸入的參數的變數為位置參數,位置參數通過標准數字表示,
其中$0為程序名稱,$1為第一個參數,$2為第二個參數,依次類推,直到$9為第九個參數。
shell腳本自動將命令行參數賦值給各個位置變數。
同時輸入多個參數可以是數值也可以是字元串)時,必須使用空格分隔要想在參數值中包含空格,就必須使用單引號或雙引號)
當參數多於9個後,必須在shell腳本內使用大括弧將變數括起來,如${10}。從而可以使用任意個參數。
2)讀取程序名稱
傳遞給變數$0的字元串實際上是程序的路徑根據調用方法決定是相對還是絕對路徑)。
使用basename命令可以去掉路徑前綴,只獲得程序名稱名字中不 可以有空格)。
3)測試腳本
當腳本認為應該包含參數,卻實際上沒有數據時,就會出錯。
好的方法是對參數進行檢查來保證使用參數前確實存在數據,可以使用-n參數來檢查。
例子:if [ –n 「$1」 ] then .. else .. fi
2、特殊的參數變數
用於跟蹤命令行參數
1)參數計數
使用特殊變數$#測試執行腳本時包含的命令行參數個數。腳本中任何位置都可以 使用$#
例子:if [ $# –ne 2 ] 即可測試參數個數
可以使用${!#}來返回最後一個命令行參數當無參數時,$#為0,而${!#}為程序名)
2)獲取所有數據
變數$*將命令行中提供的所有參數作為一個單詞處理,它將多個參數看成 一個參數。
變數$@將命令行中提供的所有參數作為同一個字元串中的多個單詞處理。 允許對其中的值進行迭代一般使用for),分隔開不同參數
3、移位
shift命令能夠改變命令行參數的相對位置。默 認將每個參數變數左移一個位置變數$0不變,把$1丟棄,注意不可以恢復了!)
在不清楚參數數目情況下,這是一個迭代參數的好辦法。
可以為shift提供一個參數,來實現多位移變化。
4、處理選項
選項是由破折號引導的單個字母,用於更改命令的行為。
1,找出選項
1)處理簡單選項
可以使用處理命令行參數相同的方法處理選項,抽取時使用case語句進行判斷是否符合選項格式。
2)從參數中分離選項
同時使用選項和參數時,可以使用--指示選項列表的結束。發現--後,shell就知道後面的是普通參數了,停止使用case處理選項。
3)處理帶值的選項
選項後緊跟參數值,一種方法是在case中對應選項後使用shift和讀後一位參數的方法處理。更好的方法如 下:
2,使用getopt命令
getopt命令在處理選項和參數時非常方便。它對參數進行重新組 織,以便於解析
1)命令格式
getopt可以接受任意形式的選項和參數列表,並自動將它們轉換為適當的格式。
命令格式為: getopt options optstring parameters
選項字元串(opstring)用於定義命令行中的有效選項字母,以及哪些選項字母需要參數值。
2)腳本中使用getopt
需要使用set命令將現有的命令行選項和參數替換為getopt命令生成的 格式化形式。
需要將原始腳本命令行參數送給getopt命令,然後將getopt命令輸出送給set命令,如下:set – `getopts –q ab:cd 「$@」`
但是getopt命令不能很好的處理帶有空格的參數值,它將空格解析為參數分隔符,而不是將雙引號引起來的兩個 值合並成一個參數。解決辦法如下:
3)更高級的getopts命令
getopts命令順序的對現有的shell參數變數進行處理,每調用一次,只處理命令中檢測到的參數中的一個。處理完所有參數後,以大於0的退出 狀態退出。
非常適宜於在循環中解析所有命令行參數
格式為: getopts optstring variable
$optarg包含需要參數值的選項要使用的值,$optind包含getopts停止處理時在參數列表中的位置。
注意:當getopts處理時,會將選項前的-去掉,所以對應的case中不需要破折號。
好的特性:
1)可以在參數值中包含空格
2)選項字母和參數值中間可以沒有空格
3)將在命令行中找到的未定義的選項都綁定為單一的輸出——問號
5、標准化選項
有一些字母選項具有標准含義。最好按照標准含義定義選項意義
-a –c –d –e –f –h –i –l –n –o –q –r –s –v- x –y
6、獲取用戶輸入
當需要在執行過程中獲得執行腳本人員的輸入,使用read命令
1)基本讀取
read命令接受標准輸入或其他文件描述符輸入。讀入後將數據放入 一個標准變數中。
-p 允許在read命令行中直接指定一個提示。
可以指定多個變數,也可以不指定將放置在reply環境變數中)
2)計時
使用-t指定一個計時器,計時數滿還未輸入,read返回一個非0的退出狀態。
使用-n指定輸入的字元個數,輸入達到預定數目時,就自動結束輸入
3)默讀
使用-s使輸入不顯示在終端例如輸入密碼
4)讀取文件
最常用的方法是使用cat命令,並通過管道傳給包含read的while語句。

② shell是什麼意思

Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種介面。它接收用戶輸入的命令並把它送入內核去執行。
實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令並且把它們送到內核。不僅如此,Shell有自己的編程語言用於對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環結構和分支控制結構等,用這種編程語言編寫的Shell程序與其他應用程序具有同樣的效果。
Linux提供了像Microsoft Windows那樣的可視的命令輸入界面--X Window的圖形用戶界面(GUI)。它提供了很多桌面環境系統,其操作就象Windows一樣,有窗口、圖標和菜單,所有的管理都是通過滑鼠控制。現在比較流行的桌面環境系統是KDE和GNOME。
每個Linux系統的用戶可以擁有他自己的用戶界面或Shell,用以滿足他們自己專門的Shell需要。
同Linux本身一樣,Shell也有多種不同的版本。目前主要有下列版本的Shell: Bourne Shell:是貝爾實驗室開發的。
BASH:是GNU的Bourne Again Shell,是GNU操作系統上默認的shell。
Korn Shell:是對Bourne SHell的發展,在大部分內容上與Bourne Shell兼容。 C Shell:是SUN公司Shell的BSD版本。

③ shell術語

shell術語的解釋如下

  1. 定義:在計算機科學中,shell,通常稱為「殼」,是操作系統中提供用戶界面的軟體。它類似於Windows 7中的命令解析器,如早期的cmd.exe,用於接收用戶輸入的命令,並調用相應的應用程序執行。

  2. 主要功能

    • 命令解釋與執行:shell負責接收用戶輸入的命令,然後調用相應的應用程序執行。
    • 編程功能:shell兼具編程語言的功能,允許互動式或非互動式地解釋和執行命令,定義變數和參數,並支持循環和分支等控制結構。
  3. 分類

    • 圖形界面shell:如Windows Explorer、Linux的X window manager以及CDE、GNOME、KDE、XFCE等。這些shell提供圖形用戶界面,使用戶可以通過點擊圖標或菜單來執行命令。
    • 命令行式shell:如Unix/Linux的bash/sh/ksh/csh,MSDOS的cmd.exe,以及Windows PowerShell等。這些shell提供命令行界面,使用戶可以通過輸入命令來執行操作。
  4. 操作模式

    • 互動式:等待用戶輸入命令,然後執行。
    • 非互動式:從文件中讀取命令並執行,不等待用戶輸入。
  5. Unix系統中的主要shell類型

    • Bourne shell:如sh、ksh和bash,是最早的Unix shell之一。
    • C shell:如csh和tcsh,提供與Bourne shell不同的語法和特性。
    • POSIX shell:是Korn shell的變種,遵循POSIX標准。
  6. Windows PowerShell:是Windows系統中的一個新型互動式命令行工具,專為IT管理員設計,提供腳本編寫和系統管理功能。它支持一致的語法、WMI等特性,使系統管理更加高效和便捷。

閱讀全文

與sell編程菜單交互是什麼相關的資料

熱點內容
adhoc什麼文件夾 瀏覽:811
視頻文件改成mp3 瀏覽:440
mcgsp怎麼進入編程界面 瀏覽:401
有哪些app的漫畫畫風好看 瀏覽:363
大數據復制什麼意思 瀏覽:602
win7不顯示文件夾格式的文件 瀏覽:325
均線是怎麼編程的 瀏覽:48
win10阻止文件在哪裡 瀏覽:420
lrs文件有什麼用 瀏覽:252
數據連接受影響是關閉哪個憑據 瀏覽:953
dz附件文件無法保存 瀏覽:320
蘋果6大料板 瀏覽:771
linux目錄下文件授權 瀏覽:942
linux剪切文件夾 瀏覽:988
編程培訓學什麼軟體 瀏覽:127
sd卡文件復制工具 瀏覽:326
如何查看資料庫備份 瀏覽:7
快速創建多個文件夾win10 瀏覽:778
榮昌裝修微信群 瀏覽:973
mnt路徑下不能創建文件夾 瀏覽:834

友情鏈接