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

學(xué)習(xí)Unix操作系統(tǒng)外殼腳本

系統(tǒng) 其他OS
在Unix操作系統(tǒng)中,我們要學(xué)會(huì)使用外殼腳本的方式操作Unix操作系統(tǒng)命令,識(shí)別并提取出可能的參數(shù)以后,您所需做的就是構(gòu)建新的選項(xiàng)來提供給最終要使用的命令。

經(jīng)過長時(shí)間的學(xué)習(xí)Unix操作系統(tǒng)的知識(shí),這次我們來介紹關(guān)于使用外殼腳本的知識(shí)。它是典型Unix操作系統(tǒng)管理員使用命令解決的方案之一。當(dāng)您要構(gòu)建的包裝特別復(fù)雜時(shí),更好的解決方案是使用外殼腳本,您可以代替原始命令調(diào)用這些腳本。使用外殼腳本,您可以更創(chuàng)造性地處理替代,甚至為另一個(gè)命令提供完全由外殼腳本驅(qū)動(dòng)的替代。

使用外殼腳本的方式操作Unix操作系統(tǒng)命令

構(gòu)建一致環(huán)境的最容易和最兼容的方法,是創(chuàng)建可用作實(shí)際命令的包裝的外殼腳本,這樣考慮了您希望支持的各種選項(xiàng)和設(shè)置。例如,Unix操作系統(tǒng)useradd 和 adduser 命令在設(shè)置參數(shù)(如用戶 ID 或組成員資格)時(shí)支持同樣的單字母命令行選項(xiàng),因此 Linux 上的 $ adduser -u 1000 -G sales,marketing mcbrown 等效于 Solaris 上的 $ useradd -u 1000 -G sales,marketing mcbrown。

然而,Linux 版本還支持?jǐn)U展命令選項(xiàng),例如,--uid 和 --groups 等效于上面的命令行選項(xiàng)。這些擴(kuò)展選項(xiàng)在 Solaris 上不受支持,但是,如果創(chuàng)建一個(gè)名為 adduser 的外殼腳本,您就可以模擬 Linux 版本,然后用適當(dāng)?shù)倪x項(xiàng)運(yùn)行實(shí)際的 Solaris useradd 命令。

例如,在Unix操作系統(tǒng)中用作 adduser 或 useradd 命令的包裝的示例外殼腳本。

 

  1. #!/bin/bash  
  2. # -*- shell-script -*-   
  3. for i in $*  
  4. do  
  5. case $i in  
  6. --uid|-u) OPT_UID=$2; shift 2;;  
  7. --groups|-G) OPT_GROUPS=$2; shift 2;;  
  8. --gid|-g) OPT_GROUP=$2; shift 2;;  
  9. --home-dir|-d) OPT_HOMEDIR=$2; shift 2;;  
  10. --shell|-s) OPT_SHELL=$2;shift 2;;  
  11. --non-unique|-o) OPT_NONUNIQUE=1;shift 2;;  
  12. --comment|-c) OPT_COMMENT=$2;shift 2;;  
  13. esac  
  14. done  
  15. OPTS="" 
  16. if [ -n "$OPT_$HOMEDIR" ]  
  17. then  
  18. OPTS="$OPTS -d $OPT_HOMEDIR" 
  19. fi  
  20. if [ -n "$GROUP" ]thenOPTS="$OPTS -g $OPT_GROUP" 
  21. fi  
  22. if [ -n "$OPT_GROUPS" ]  
  23. then  
  24. OPTS="$OPTS -G $OPT_GROUPS" 
  25. fi  
  26. if [ -n "$OPT_SHELL" ]thenOPTS="$OPTS -s $OPT_SHELL" 
  27. fi  
  28. if [ -n "$OPT_UID" ]  
  29. then  
  30. OPTS="$OPTS -u $OPT_UID" 
  31. fi  
  32. if [ -n "$OPT_COMMENT" ]  
  33. then  
  34. OPTS="$OPTS -c \"$OPT_COMMENT\""  
  35. fi  
  36. if [ -n "$OPT_NOUNIQUE" ]  
  37. then  
  38. OPTS="$OPTS -o" 
  39. fi  
  40. CMD=adduser 
  41. UNAME=`uname`  
  42. case $UNAME in  
  43. Solaris) CMD=useradd;break;;  
  44. esac  
  45. $CMD $OPTS $*  


以上的腳本的關(guān)鍵是 foreach 循環(huán),它遍歷所提供的命令行參數(shù)(在 $* 中提供)。對(duì)于每個(gè)選項(xiàng),case 語句會(huì)嘗試識(shí)別該選項(xiàng)——使用短格式或長格式并設(shè)置一個(gè)變量。Unix操作系統(tǒng)命令行開關(guān)為 $1。如果該選項(xiàng)后面正常地跟著一個(gè)值(例如,用戶 ID),您可以將 $2 當(dāng)作該值來進(jìn)行訪問,并使用它將該值賦于某個(gè)變量。

識(shí)別出某個(gè)選項(xiàng)后,shift 語句從 $* 變量列表中移動(dòng)一個(gè)位置(若指定了數(shù)字,則移動(dòng)指定數(shù)目的位置),以便已經(jīng)識(shí)別出的命令行參數(shù)在循環(huán)的下一次迭代中不再在 $* 變量中。

識(shí)別并提取出可能的參數(shù)以后,您所需做的就是構(gòu)建新的選項(xiàng)來提供給最終要使用的命令。由于useradd/adduser 都支持短格式的參數(shù),所以可在此基礎(chǔ)上構(gòu)建新的命令選項(xiàng)字符串。這是通過檢查對(duì)應(yīng)的變量是否已設(shè)置并將該選項(xiàng)添加到命令行來實(shí)現(xiàn)的。請(qǐng)注意雙引號(hào)的使用,它確保了原始命令中引用的參數(shù)被保留并得到正確識(shí)別。

通過在Unix操作系統(tǒng)使用命令行工具和外殼流控制(如 if 或case)的組合,您可以使用單個(gè)源來選擇各種要使用的選項(xiàng)。有兩個(gè)工具在這種情況下很有用:一個(gè)工具識(shí)別主機(jī)(如 hostname 或 uname),另一個(gè)工具識(shí)別平臺(tái) (uname)。 uname 產(chǎn)生的缺省輸出是基本操作系統(tǒng)名稱,如 Linux 或Solaris。

例如,可以按照前一部分中的ps 示例,將該命令與case 語句結(jié)合使用以選擇正確的別名,uname 的輸出,例如 UNAME='uname'
 

  1. case "$UNAME" in  
  2. FreeBSD|NetBSD|Darwin)  
  3. alias ps='ps -o pid,ppid,command' 
  4. break  
  5. ;;  
  6. Solaris|Linux)   
  7. alias ps='ps -o pid,ppid,cmd' 
  8. break  
  9. ;;  
  10. esac 


也可以在腳本中使用同樣的基本過程來選擇特定的序列。這次,我們就介紹完了關(guān)于Unix操作系統(tǒng)外殼腳本的知識(shí)。

【編輯推薦】

  1. 解析Unix操作系統(tǒng)變種SCO UnixWare
  2. 10個(gè)程序來考驗(yàn)Unix操作系統(tǒng)
  3. 變成Unix操作系統(tǒng)高手
  4. 快速學(xué)習(xí)Unix操作系統(tǒng)
  5. 關(guān)于Unix操作系統(tǒng)問題
責(zé)任編輯:小霞
相關(guān)推薦

2010-04-09 14:47:55

Unix操作系統(tǒng)

2010-04-16 14:46:22

2010-04-16 18:19:32

Unix操作系統(tǒng)

2010-04-20 17:11:33

Unix操作系統(tǒng)

2010-04-16 17:19:58

Unix操作系統(tǒng)

2010-04-09 11:24:38

Unix操作系統(tǒng)

2010-04-30 17:53:29

2010-04-16 10:51:09

2010-05-06 17:59:50

Unix命令

2010-04-30 17:27:59

Unix操作系統(tǒng)

2010-04-15 13:02:41

Unix操作系統(tǒng)

2010-04-16 14:05:07

Unix操作系統(tǒng)

2010-04-13 12:27:44

Unix操作系統(tǒng)

2010-04-15 13:36:07

Unix操作系統(tǒng)

2010-04-19 10:30:27

Unix操作系統(tǒng)

2010-04-09 17:16:04

Unix操作系統(tǒng)

2010-04-08 16:49:36

Unix操作系統(tǒng)

2010-04-07 15:37:16

Unix操作系統(tǒng)

2010-04-08 13:06:02

Unix操作系統(tǒng)

2010-04-08 15:33:57

Unix操作系統(tǒng)
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产伦精品一区二区三区四区视频 | 黄色大片在线 | 欧美精品一区二区三区四区五区 | 国产精品视频一 | 亚洲一区二区三区四区视频 | 亚洲另类春色偷拍在线观看 | 精品久久久久久久 | 999国产精品视频 | 在线免费观看黄色av | 男女爱爱网站 | 日韩1区| 欧美男人天堂 | 久久精品这里精品 | 在线中文视频 | 草草草网站 | 99精品久久久 | 精品伊人 | 国产日韩免费视频 | 黄色大片在线视频 | 国产中文在线观看 | 在线播放中文字幕 | 国产精品国产馆在线真实露脸 | 国产精品久久久久久久久污网站 | 成人免费精品视频 | 亚洲一区二区久久久 | 国产精品精品视频一区二区三区 | 国产精品美女www爽爽爽 | 国产高清免费视频 | 黄色免费在线网址 | 亚洲视频国产 | av免费观看在线 | 最新中文字幕在线播放 | 国产福利资源在线 | 欧美日韩一区二区三区四区五区 | 久久99蜜桃综合影院免费观看 | 日本小电影网站 | 成人精品视频在线观看 | 乱一性一乱一交一视频a∨ 色爱av | 久久天堂网 | 日日夜夜影院 | 久久精品av麻豆的观看方式 |