日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bash shell 变量的配置守则

發布時間:2025/4/16 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bash shell 变量的配置守则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 變量的配置守則
  • 變量與變量內容以一個等號『=』來連結,如下所示:?
    『myname=VBird』

  • 等號兩邊不能直接接空格符,如下所示為錯誤:?
    『myname = VBird』或『myname=VBird Tsai』

  • 變量名稱只能是英文字母與數字,但是開頭字符不能是數字,如下為錯誤:?
    『2myname=VBird』

  • 變量內容若有空格符可使用雙引號『"』或單引號『'』將變量內容結合起來,但
    • 雙引號內的特殊字符如 $ 等,可以保有原本的特性,如下所示:
      『var="lang is $LANG"』則『echo $var』可得『lang is en_US』
    • 單引號內的特殊字符則僅為一般字符 (純文本),如下所示:
      『var='lang is $LANG'』則『echo $var』可得『lang is $LANG』

  • 可用跳脫字符『 \ 』將特殊符號(如 [Enter], $, \, 空格符, '等)變成一般字符;

  • 在一串命令中,還需要藉由其他的命令提供的信息,可以使用反單引號『`命令`』或 『$(命令)』。特別注意,那個 ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號! 例如想要取得核心版本的配置:
    『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』

  • 若該變量為擴增變量內容時,則可用 "$變量名稱" 或 ${變量} 累加內容,如下所示:
    『PATH="$PATH":/home/bin』

  • 若該變量需要在其他子程序運行,則需要以 export 來使變量變成環境變量
    『export PATH』

  • 通常大寫字符為系統默認變量,自行配置變量可以使用小寫字符,方便判斷 (純粹依照使用者興趣與嗜好) ;

  • 取消變量的方法為使用 unset?:『unset 變量名稱』例如取消 myname 的配置:
    『unset myname』
  • 底下讓鳥哥舉幾個例子來讓你試看看,就知道怎么配置好你的變量啰!

    范例一:配置一變量 name ,且內容為 VBird [root@www ~]# 12name=VBird -bash: 12name=VBird: command not found <==屏幕會顯示錯誤!因為不能以數字開頭! [root@www ~]# name = VBird <==還是錯誤!因為有空白! [root@www ~]# name=VBird <==OK 的啦!范例二:承上題,若變量內容為 VBird's name 呢,就是變量內容含有特殊符號時: [root@www ~]# name=VBird's name # 單引號與雙引號必須要成對,在上面的配置中僅有一個單引號,因此當你按下 enter 后, # 你還可以繼續輸入變量內容。這與我們所需要的功能不同,失敗啦! # 記得,失敗后要復原請按下 [ctrl]-c 結束! [root@www ~]# name="VBird's name" <==OK 的啦! # 命令是由左邊向右找→,先遇到的引號先有用,因此如上所示,單引號會失效! [root@www ~]# name='VBird's name' <==失敗的啦! # 因為前兩個單引號已成對,后面就多了一個不成對的單引號了!因此也就失敗了! [root@www ~]# name=VBird\'s\ name <==OK 的啦! # 利用反斜杠 (\) 跳脫特殊字符,例如單引號與空格鍵,這也是 OK 的啦!范例三:我要在 PATH 這個變量當中『累加』:/home/dmtsai/bin 這個目錄 [root@www ~]# PATH=$PATH:/home/dmtsai/bin [root@www ~]# PATH="$PATH":/home/dmtsai/bin [root@www ~]# PATH=${PATH}:/home/dmtsai/bin # 上面這三種格式在 PATH 里頭的配置都是 OK 的!但是底下的例子就不見得啰!范例四:承范例三,我要將 name 的內容多出 "yes" 呢? [root@www ~]# name=$nameyes # 知道了吧?如果沒有雙引號,那么變量成了啥?name 的內容是 $nameyes 這個變量! # 呵呵!我們可沒有配置過 nameyes 這個變量吶!所以,應該是底下這樣才對! [root@www ~]# name="$name"yes [root@www ~]# name=${name}yes <==以此例較佳!范例五:如何讓我剛剛配置的 name=VBird 可以用在下個 shell 的程序? [root@www ~]# name=VBird [root@www ~]# bash <==進入到所謂的子程序 [root@www ~]# echo $name <==子程序:再次的 echo 一下;<==嘿嘿!并沒有剛剛配置的內容喔! [root@www ~]# exit <==子程序:離開這個子程序 [root@www ~]# export name [root@www ~]# bash <==進入到所謂的子程序 [root@www ~]# echo $name <==子程序:在此運行! VBird <==看吧!出現配置值了! [root@www ~]# exit <==子程序:離開這個子程序

    什么是『子程序』呢?就是說,在我目前這個 shell 的情況下,去激活另一個新的 shell ,新的那個 shell 就是子程序啦!在一般的狀態下,父程序的自定義變量是無法在子程序內使用的。但是透過 export 將變量變成環境變量后,就能夠在子程序底下應用了!很不賴吧!至于程序的相關概念, 我們會在第十七章程序管理當中提到的喔!

    范例六:如何進入到您目前核心的模塊目錄? [root@www ~]# cd /lib/modules/`uname -r`/kernel [root@www ~]# cd /lib/modules/$(uname -r)/kernel

    每個 Linux 都能夠擁有多個核心版本,且幾乎 distribution 的核心版本都不相同。以 CentOS 5.3 (未升級前) 為例,他的默認核心版本是 2.6.18-128.el5 ,所以核心模塊目錄在 /lib/modules/2.6.18-128.el5/kernel/ 內。 也由于每個 distributions 的這個值都不相同,但是我們卻可以利用 uname -r 這個命令先取得版本信息。所以啰,就可以透過上面命令當中的內含命令 `uname -r` 先取得版本輸出到 cd ... 那個命令當中,就能夠順利的進入目前核心的驅動程序所放置的目錄啰!很方便吧!

    其實上面的命令可以說是作了兩次動作,亦即是:

  • 先進行反單引號內的動作『uname -r』并得到核心版本為 2.6.18-128.el5
  • 將上述的結果帶入原命令,故得命令為:『cd /lib/modules/2.6.18-128.el5/kernel/』
  • 范例七:取消剛剛配置的 name 這個變量內容 [root@www ~]# unset name

    根據上面的案例你可以試試看!就可以了解變量的配置啰!這個是很重要的呦!請勤加練習! 其中,較為重要的一些特殊符號的使用啰!例如單引號、雙引號、跳脫字符、錢字號、反單引號等等,底下的例題想一想吧!

    例題: 在變量的配置當中,單引號與雙引號的用途有何不同?
    答: 單引號與雙引號的最大不同在于雙引號仍然可以保有變量的內容,但單引號內僅能是一般字符 ,而不會有特殊符號。我們以底下的例子做說明:假設您定義了一個變量, name=VBird ,現在想以 name 這個變量的內容定義出 myname 顯示 VBird its me 這個內容,要如何訂定呢? [root@www ~]# name=VBird
    [root@www ~]# echo $name
    VBird
    [root@www ~]# myname="$name its me"
    [root@www ~]# echo $myname
    VBird its me
    [root@www ~]# myname='$name its me'
    [root@www ~]# echo $myname
    $name its me 發現了嗎?沒錯!使用了單引號的時候,那么 $name 將失去原有的變量內容,僅為一般字符的顯示型態而已!這里必需要特別小心在意!

    例題: 在命令下達的過程中,反單引號( ` )這個符號代表的意義為何? 答: 在一串命令中,在 ` 之內的命令將會被先運行,而其運行出來的結果將做為外部的輸入信息!例如 uname -r 會顯示出目前的核心版本,而我們的核心版本在 /lib/modules 里面,因此,你可以先運行 uname -r 找出核心版本,然后再以『 cd 目錄』到該目錄下,當然也可以運行如同上面范例六的運行內容啰。?

    另外再舉個例子,我們也知道,?locate?命令可以列出所有的相關文件檔名,但是,如果我想要知道各個文件的權限呢?舉例來說,我想要知道每個 crontab 相關檔名的權限: [root@www ~]# ls -l `locate crontab` 如此一來,先以 locate 將文件名數據都列出來,再以 ls 命令來處理的意思啦!瞭了嗎? ^_^

    例題: 若你有一個常去的工作目錄名稱為:『/cluster/server/work/taiwan_2005/003/』,如何進行該目錄的簡化? 答: 在一般的情況下,如果你想要進入上述的目錄得要『cd /cluster/server/work/taiwan_2005/003/』, 以鳥哥自己的案例來說,鳥哥跑數值模式常常會配置很長的目錄名稱(避免忘記),但如此一來變換目錄就很麻煩。 此時,鳥哥習慣利用底下的方式來降低命令下達錯誤的問題: [root@www ~]# work="/cluster/server/work/taiwan_2005/003/"
    [root@www ~]# cd $work 未來我想要使用其他目錄作為我的模式工作目錄時,只要變更 work 這個變量即可!而這個變量又可以在?bash 的配置文件中直接指定,那我每次登陸只要運行『 cd $work 』就能夠去到數值模式仿真的工作目錄了!是否很方便呢? ^_^

    Tips:
    老實說,使用『 version=$(uname -r) 』來取代『 version=`uname -r` 』比較好,因為反單引號大家老是容易打錯或看錯! 所以現在鳥哥都習慣使用 $( 命令 ) 來介紹這個功能!

    總結

    以上是生活随笔為你收集整理的bash shell 变量的配置守则的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲精品性视频 | 亚洲成a人 | 中文字幕日韩av | 制服.丝袜.亚洲.另类.中文 | 长腿校花无力呻吟娇喘的视频 | 午夜视频福利 | 亚洲天堂精品在线 | 久久99久久99精品免观看软件 | 成人v片| 精品视频在线免费看 | 久久久性色精品国产免费观看 | 欧美在线黄色 | 欧美黄色一区 | 国产原创在线视频 | www.亚洲人| 动漫av一区二区 | 国产三区四区视频 | 国产黄色片在线免费观看 | 国内久久精品 | 一级片久久久久 | xxx毛片| 激情视频在线播放 | 免费美女视频网站 | 天堂在线中文资源 | 黄色女女 | 天天视频黄 | 国产精品久久久久久久久久久久 | 人体私拍套图hdxxxx | 91超碰在线播放 | 口舌奴vk| 亚洲综合色小说 | 日本三级吹潮 | 亚洲一区二区三区在线观看视频 | 卡一卡二卡三 | 中国在线观看免费高清视频播放 | 青草热视频| 国产一区二区三区四区五区在线 | 国产制服91一区二区三区制服 | 日本japanese极品少妇 | 91污在线观看 | 成年人爱爱视频 | 亚洲天堂小说 | 欧美一区二区三区国产 | 激情图片在线视频 | 中文字幕女同 | 欧美亚洲视频一区 | 龚玥菲三级露全乳视频 | 99国产在线 | 成人福利视频 | 一起操在线观看 | 四虎在线视频免费观看 | 亚洲午夜精品一区二区三区他趣 | 欧美大片免费观看网址 | 久热这里只有精品6 | 影音先锋中文字幕在线 | 污视频在线观看网址 | zjzjzjzjzj亚洲女人 | 国产欧美日韩精品区一区二污污污 | 亚洲天堂男人网 | 求av网站 | 操日本老妇| 久久精品99久久久 | 国产精品美女久久久久久久久 | 免费在线黄色网址 | 51国产偷自视频区视频 | 在线天堂资源 | 色久阁| 亚洲国产精品成人综合 | 成人午夜免费观看 | 丰满熟妇人妻av无码区 | 亚洲精品一区二区在线观看 | 免费色网| 黄色草逼视频 | 精品国产aⅴ一区二区三区四川人 | 观看av在线| 国产九九九精品 | 国产视频播放 | 国产视频福利在线观看 | 精品视频在线免费 | 日本伊人网| 欧美打屁股 | 亚洲精品电影在线 | 国产精品黄网站 | 在线观看麻豆 | 久久久久一| 男女无遮挡做爰猛烈视频 | 色射综合 | 国产成人精品女人久久久 | 天堂在线观看免费视频 | 国产xx在线观看 | 欧美操穴 | 大胸喷奶水www视频妖精网站 | www.色人阁.com| 99精品国自产在线 | 日本免费一区二区三区四区五六区 | 性欢交69国产精品 | 久久露脸 | 欧美性一区二区三区 | 精品人妻在线视频 |