溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

shell編程中如何分析bash變量

發(fā)布時(shí)間:2021-11-08 17:21:49 來(lái)源:億速云 閱讀:112 作者:柒染 欄目:建站服務(wù)器

本篇文章為大家展示了shell編程中如何分析bash變量,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

導(dǎo)讀shell編程--bash變量介紹 ,變量是計(jì)算機(jī)內(nèi)存的單元,其中存放的值可以改變。當(dāng) Shell  腳本需要保存一些信息時(shí),如一個(gè)文件名或一個(gè)數(shù)字,就把它存放在一個(gè)變量中。

bash變量類(lèi)型

  • 本地變量

本地變量的作用域?yàn)檎麄€(gè)bash進(jìn)程。局部變量屬于本地變量。在bash中聲明變量的周期隨著該進(jìn)程的周期而存在。
定義本地變量:set VARNAME=Jerry
引用變量:${VARNAME},括號(hào)可省略
局部變量的聲明:local VARNAME=VALUE
  • 環(huán)境變量

環(huán)境變量的作用域?yàn)楫?dāng)前shell進(jìn)程及其子進(jìn)程聲明:export VARNAME=VALUE或者VARNAME=VALUE; export VARNAME腳本在執(zhí)行時(shí)會(huì)啟動(dòng)一個(gè)子shell進(jìn)程命令行中啟動(dòng)的腳本會(huì)繼承當(dāng)前shell的環(huán)境變量系統(tǒng)自動(dòng)執(zhí)行的腳本(非命令行啟動(dòng))就需要自我定義需要各環(huán)境變量
  • 位置變量

$1, $2, ...shift: 對(duì)參數(shù)進(jìn)行輪換,默認(rèn)輪換一個(gè)參數(shù)#!/bin/bash#echo $1shiftecho $1shiftecho $1shift./filetest.sh /etc/fstab /etc/inittab    $1:/etc/fstab 
    $2:/etc/inittab
  • 特殊變量

$?: 上一個(gè)命令執(zhí)行狀態(tài)的返回值
    程序執(zhí)行,可能有兩類(lèi)返回值:
        程序執(zhí)行結(jié)果
        程序狀態(tài)返回代碼(0-255)            0: 正確執(zhí)行            1-255: 錯(cuò)誤執(zhí)行。1、2、127系統(tǒng)預(yù)留$#: 參數(shù)的個(gè)數(shù)$*: 參數(shù)列表$@: 參數(shù)列表

變量的撤銷(xiāo)及查看

  • 撤銷(xiāo)變量

unset VARNAME
  • 查看變量

set: 查看當(dāng)前shell中的變量(包括環(huán)境變量和本地變量)
printenv、env、export: 查看當(dāng)前shell中的環(huán)境變量

變量命名規(guī)則

1、變量與變量?jī)?nèi)容以一個(gè)等號(hào)"="來(lái)連接,如下所示:
    MyName=Dabric
2、等號(hào)兩邊不能直接接空格符,如下錯(cuò)誤:
    MyName= Dabric 或 Myname=Dab ric
3、變量名稱(chēng)只能是英文字母與數(shù)字,但是開(kāi)頭字符不能時(shí)數(shù)字;
4、變量?jī)?nèi)容若有空格符可使用雙引號(hào)或單引號(hào)將變量?jī)?nèi)容結(jié)合起來(lái),但雙引號(hào)內(nèi)的特殊字符如$等,可以保有原本的特性,如下所示:
    var="lang is $LANG" 則echo $var 可得 lang is en_US.UTF-8
單引號(hào)內(nèi)的特殊字符則僅為一般字符(純文本),如下所示:
    var='lang is $LANG' 則echo $var 可得 lang is $LANG
    總之在bash中:    "":弱引用,可以實(shí)現(xiàn)變量替換    '':強(qiáng)引用,不完成變量替換
5、可以使用跳脫字符"\"將特殊字符(如[ENTER], $, \, 空格符, '等)變成一般字符,如:
    MyName=Dab\ ric
6、在一串指令的執(zhí)行中,還需要藉由其他額外的指令所提供的信息時(shí),可以使用反引號(hào)"`COMMAND`"或"$(COMMAND)"。例如想要取得核心版本的設(shè)定:
    version=$(uname -r) 
    echo $version如何進(jìn)入到您目前核心的模塊目錄:
    # cd /lib/modules/`uname -r`/kernel
    # cd /lib/moudles/$(uname -r)/kernel
7、若改變量為擴(kuò)增變量?jī)?nèi)容時(shí),則可用"$變量名稱(chēng)"或${變量}累加內(nèi)容,如下所示:
    PATH="$PATH":/home/bin 或 PATH=${PATH}:/home/bin
8、若該變量需要在其他子程序執(zhí)行,則需要以export來(lái)使變量變成環(huán)境變量:
    # export PATH
9、通常大寫(xiě)字符為系統(tǒng)默認(rèn)變量,自行設(shè)定變量可以使用小寫(xiě)字符,方便判斷;
10、取消變量的方法為使用unset:"unset 變量名稱(chēng)"例如取消MyName的設(shè)定:
    # unset MyName
變量可以在bash配置文件(~/.bashrc)中直接指定,保證每次登錄shell該變量都存在

上述內(nèi)容就是shell編程中如何分析bash變量,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI