freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

高級bash腳本編程指南-資料下載頁

2025-04-02 00:28本頁面
  

【正文】 l子進程(即這個shell所執(zhí)行的命令)都會繼承這個環(huán)境. (譯者注: 準確地說, 應該是后繼生成的子進程才會繼承Shell的新環(huán)境變量, 已經(jīng)運行的子進程并不會得到它的新環(huán)境變量).分配給環(huán)境變量的空間是有限的. 創(chuàng)建太多環(huán)境變量, 或者給一個環(huán)境變量分配太多的空間都會引起錯誤.如果一個腳本要設置一個環(huán)境變量, 那么需要將這些變量export出來, 也就是需要通知到腳本本地的環(huán)境. 這是export命令的功能.一個腳本只能夠export變量到這個腳本所產(chǎn)生的子進程, 也就是說只能夠對這個腳本所產(chǎn)生的命令和進程起作用. 如果腳本是從命令行中調(diào)用的, 那么這個腳本所export的變量是不能影響命令行環(huán)境的. 也就是說, 子進程是不能夠export變量來影響產(chǎn)生自己的父進程的環(huán)境的.位置參數(shù)從命令行傳遞到腳本的參數(shù): $0, $1, $2, $3 . . .$0就是腳本文件自身的名字, $1 是第一個參數(shù), $2是第二個參數(shù), $3是第三個參數(shù), 然后是第四個. $9之后的位置參數(shù)就必須用大括號括起來了, 比如, ${10}, ${11}, ${12}.兩個比較特殊的變量$*和$@ 表示所有的位置參數(shù).還是看一個實例吧[html]view plaincopy1. !/bin/bash2. 作為用例,調(diào)用這個腳本至少需要10個參數(shù),比如:3. ./scriptname123456789104. MINPARAMS=105. echoThenameofthisscriptis\$0\.6. echoThenameofthisscriptis\`basename$0`\.7. 8. if[n$1]測試變量被引用.9. then10. echoParameter1is$1需要引用才能夠轉義11. fi12. 13. if[n$2]14. then15. echoParameter2is$216. fi17. 18. if[n$3]19. then20. echoParameter3is$321. fi22. 23. if[n${10}]大于$9的參數(shù)必須用{}括起來.24. then25. echoParameter10is${10}26. fi27. echo28. echoAllthemandlineparametersare:$*29. if[$lt$MINPARAMS]30. then31. echoThisscriptneedsatleast$MINPARAMSmandlinearguments!32. fi33. exit0看看實驗結果:[html]view plaincopy1. root@ubuntu:~/resource/study/shell_study./args1232. Thenameofthisscriptis./args.3. Thenameofthisscriptisargs.4. Parameter1is15. Parameter2is26. Parameter3is37. 8. Allthemandlineparametersare:1239. Thisscriptneedsatleast10mandlinearguments!10. root@ubuntu:~/resource/study/shell_study./args123456789101111. Thenameofthisscriptis./args.12. Thenameofthisscriptisargs.13. Parameter1is114. Parameter2is215. Parameter3is316. Parameter10is1017. 18. Allthemandlineparametersare:1234567891011{}標記法提供了一種提取從命令行傳遞到腳本的最后一個位置參數(shù)的簡單辦法一些腳本可能會依賴于使用不同的調(diào)用名字, 來表現(xiàn)出不同的行為. 如果想要達到這種目的, 一般都需要在腳本中檢查$0. 因為腳本只能夠有一個真正的文件名, 如果要產(chǎn)生多個名字, 必須使用符號鏈接.看一下shift命令的使用實例:[html]view plaincopy1. !/bin/bash2. 使用39。shift39。來逐步存取所有的位置參數(shù).給腳本命個名,比如shft,然后給腳本傳遞一些位置參數(shù),比如:./shftabcdef23skidoo3. 4. until[z$1]直到所有的位置參數(shù)都被存取完...5. do6. echon$17. shift8. done9. echo10. exit0查看實驗結果:[html]view plaincopy1. root@ubuntu:~/resource/study/shell_study./shiftddflsjfsldjf2. ddflsjfsldjf先到這里了,O(∩_∩)O~高級Bash腳本編程指南(4):shell中的引用成于堅持,敗于止步引用的字面意思就是將字符串用雙引號括起來. 它的作用就是保護字符串中的特殊字符不被shell或者shell腳本重新解釋, 或者擴展. (我們這里所說的特殊指的是一些字符在shell中具有的特殊意義, 而不是字符的字面意思, 比如通配符 *.)在日常的演講和寫作中, 當我們引用一個短語的時候, 這意味著這個短語被區(qū)分以示它有特別的含義. 但是在Bash腳本中, 當我們引用一個字符串的時候, 我們區(qū)分這個字符串是為了保護它的字面含義.某些程序和工具能夠重新解釋或者擴展被引用的特殊字符. 引用的一個重要作用就是保護命令行參數(shù)不被shell解釋, 但是還是能夠讓正在調(diào)用的程序來擴展它.[html]view plaincopy1. root@ubuntu:~/resource/study/shell_study/txtfoldergrep[Tt]his*.txt2. :thisisthefirstfile3. :Thisthesecondfile4. root@ubuntu:~/resource/study/shell_study/txtfoldergrep39。[Tt]his39。*.txt5. :thisisthefirstfile6. :Thisthesecondfile這在我的bash下都是可以實現(xiàn)的引用還可以改掉echo39。s不換行的毛病.[html]view plaincopy1. root@ubuntu:~/resource/study/shell_study/txtfolderecho$(lsl)2. total8rwrr1rootroot232013042323:34rwrr1rootroot212013042323:343. root@ubuntu:~/resource/study/shell_study/txtfolderecho39。$(lsl)39。4. $(lsl)5. root@ubuntu:~/resource/study/shell_study/txtfolderecho$(lsl)6. total87. rwrr1rootroot232013042323:348. rwrr1rootroot212013042323:34在一個雙引號中通過直接使用變量名的方法來引用變量, 一般情況下都是沒問題的. 這么做將阻止所有在引號中的特殊字符被重新解釋 包括變量名, 但是$,`(后置引用), 和\(轉義符)除外. 保留$作為特殊字符的意義是為了能夠在雙引號中也能夠正常的引用變量($variable), 也就是說, 這個變量將被它的值所取代使用雙引號還能夠阻止單詞分割(word splitting). 如果一個參數(shù)被雙引號擴起來的話, 那么這個參數(shù)將認為是一個單元, 即使這個參數(shù)包含有空白, 那里面的單詞也不會被分隔開.[html]view plaincopy1. !/bin/bash2. var=39。(]\\{}\$\3. echo$var39。(]\{}$4. echo$var39。(]\{}$39。tmakeadifference.5. echo6. IFS=39。\39。7. echo$var39。(]{}$\字符被空白符替換了,為什么?8. echo$var39。(]\{}$9. exit0我們看看上面這個腳本的執(zhí)行結果:[html]view plaincopy1. root@ubuntu:~/resource/study/shell_study./echostrange2. 39。(]\{}$3. 39。(]\{}$4. 5. 39。(]{}$6. 39。(]\{}$針對IFS的用法以后再研究吧當在命令行中使用時, 如果在雙引號中包含!的話, 那么會產(chǎn)生一個錯誤(譯者注: 比如, echo hello!). 這是因為感嘆號被解釋成歷史命令了. 但是如果在腳本中, 就不會存在這個問題, 因為在腳本中Bash歷史機制是被禁用的.在雙引號中使用\也可能會出現(xiàn)一些不一致的行為[html]view plaincopy1. root@ubuntu:~/resource/study/shell_studyechohello!2. bash:!:eventnotfound3. root@ubuntu:~/resource/study/shell_studyechohello!4. hello!5. root@ubuntu:~/resource/study/shell_studyechohello\!6. hello!7. root@ubuntu:~/resource/study/shell_studyechohello\!8. hello\!9. root@ubuntu:~/resource/study/shell_studyechoni\thao10. nithao11. root@ubuntu:~/resource/study/shell_studyechoni\thao12. ni\thao13. root@ubuntu:~/resource/study/shell_studyechoeni\thao14. nithao15. root@ubuntu:~/resource/study/shell_studyechoeni\thao16. nihao單引號(39。 39。)操作與雙引號基本一樣, 但是不允許引用變量, 因為$的特殊意義被關閉了. 在單引號中, 任何特殊字符都按照字面的意思進行解釋, 除了39。. 所以說單引號(全引用)是一種比雙引號(部分引用)更嚴格的引用方法.因為即使是轉義符(\)在單引號中也是按照字面意思解釋的, 所以如果想在一對單引號中顯示一個單引號是不行的下面這個例子:[html]view plaincopy1. root@ubuntu:~/resource/study/shell_studyechoI39。magoodperson2. I39。magoodperson3. root@ubuntu:~/resource/study/shell_studyecho39。I39。magoodperson39。4. ^C5. root@ubuntu:~/resource/study/shell_studyecho39。I
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1