shell程式設計——變數和引用
1 在shell中,通常情況下使用者可以直接使用變數,無需先進行定義,當用戶第一次 使用某個變數時,實際上就同時定義了這個變數,在變數的作用域內,使用者都可以使用該變數。
在shell語言中,如果變數的值包含空格,則一定要使用引號引用起來。
為了更好地控制變數的相關屬性,bash提供了一種名稱為declare的命令來宣告:
declare attribute variable
attribute:
-i 將變數定義為整數,如果求值失敗或者不是整數,就設定為0
-r 將變數設定為只讀變數,只讀變數不允許修改,也不允許刪除。
-x 將變數設定成環境變數,這樣在隨後的指令碼和程式中可以使用。
2 變數和引號
單引號 雙引號 反引號:
其中單引號括起來的字元都作為普通字元出現,
雙引號括起來的字元,除“$” "\" “'” “`” 這幾個字元仍是特殊字元並保留其特殊功能外,其餘字元仍作為普通字元對待
由反引號括起來的字元被shell解釋為命令,在執行時,shell首先執行該命令,並以它的標準輸出結果取代整個反引號(包括兩個反引號)部分。
命令替換:`shell_command`等價於$(shell_command)
3 全域性變數、區域性變數、系統變數
全域性變數:在指令碼中定義的變數都是全域性變數,不僅可以在指令碼中直接使用,而且還可以在函式內部直接使用。其作用域為從被定義的地方開始,一直到shell指令碼結束或者被顯式地刪除。
預設情況下,函式內部定義的變數也屬於全域性變數。
區域性變數:通過local關鍵字定義區域性變數,另外,函式的引數也是區域性變數。函式內部的區域性變數會遮蔽函式外部的全域性變數,即:在出現同名的情況下,函式內部的區域性變數會優先被使用。
系統變數:
$n 第n個引數
$# 命令列引數的個數
$0 當前shell指令碼的名稱
$? 前一個命令或者函式的返回狀態碼
$* [email protected] 將所有的引數通過特定形式返回
4 變數賦值
variable_name=value
如果value中包含空格、製表符和換行符,則必須要用單引號或者雙引號將其引起來。雙引號內允許變數替換,而單引號則不可以。
中間的“=”稱為賦值符號,賦值符號的左右兩邊不能直接跟空格,否則shell會將其視為命令。
5 清除變數
使用unset語句
unset variable_name
清楚掉以後輸出空值
6 引用和替換
轉義:轉義使用反斜線表示,當反斜線後面的一個字元具有特殊的意義時,反斜線將遮蔽該字元的特殊意義。
相關推薦
shell程式設計——變數和引用
1 在shell中,通常情況下使用者可以直接使用變數,無需先進行定義,當用戶第一次 使用某個變數時,實際上就同時定義了這個變數,在變數的作用域內,使用者都可以使用該變數。在shell語言中,如果變數的值包含空格,則一定要使用引號引用起來。 為了更好地控制變數的相關
shell程式設計變數和變數賦值
1、檢視所有的shell變數 set 2、檢視所有的只讀shell變數 readonly 3、變數設定值 格式:var_name=var_value 注意:=連線變數名和變數值,=兩側不能有空格;當值var_value含空格時,需要雙引號把var_value
shell變數和引用
shell中,變數的命名:可以有字母、數字和下劃線組成,並且只能以字母和下劃線開頭。 shell語言的系統變數主要在對引數判斷和命令返回值判斷是使用。其中,包括指令碼和函式的引數、指令碼和函式的返回值
Shell程式設計---source 和 ./ 和sh 執行指令碼的區別 & 更新環境變數
執行shell指令碼一般有三種方式:sh,./ 和 source。 sh 和 ./ 功能差不多,./不能執行沒有執行許可權的指令碼,而sh可以;兩者都是繼承父shell在子shell環境中執行指令碼,執行完畢後不帶回父shell環境中。 source 或者
shell淺談之一變數和引用
一、簡介 變數是指令碼語言的核心,shell指令碼又是無型別的。變數本質上儲存資料的一個或多個計算機記憶體地址,分為本地變數(使用者當前shell生命期使用,隨shell程序的消亡而無效,類似區域性變數)、環境變數(適用於所有由登入程序所產生的子程序)和位置
python 深入變數和引用物件
變數和物件 在《learning python》中的一個觀點:變數無型別,物件有型別 在python中,如果要使用一個變數,不需要提前宣告,只需要在用的時候,給這個變數賦值即可。這裡特別強調,只要用一個變數,就要給這個變數賦值。 所以,像這樣是不行的。 >>&
【Ansible】 Playbook 中的變數和引用
Playbook 中的變數和引用1.1 通過Inventory來定義host和group變數說明:1. host 變數只對當前host起作用2. group 變數對組內的所有host起作用示例Inventory定義 [test]ansible1ansible2ansible3[test:vars]inv
Linux程式設計 22 shell程式設計(輸出和輸入重定向,管道,數學運算命令,退出指令碼狀態碼)
1. 輸出重定向 最基本的重定向是將命令的輸出傳送到一個檔案中。在bash shell中用大於號(>) ,格式如下:command > inputfile。例如:將date命令的輸出內容,儲存到指定的輸出檔案中。 如果檔案已存在,重定向操作符會用新的檔案資料覆蓋已有檔案。這種情況下可以用
值型別變數和引用型別變數的區別
主要區別在於 系統在記憶體空間中為兩者分配儲存空間的方式不同。 1、記憶體空間 記憶體空間分為棧空間和堆空間。值型別資料的儲存空間在棧空間中分配,引用型別資料則在堆空間分配。 由系統管理棧空間的所有操作,包括進棧和出棧。當一個數據出棧後,其所分配到的儲存空間由系統自動回收。
Java基礎-基本型別變數和引用型別變數
前言 每個變數佔據了一定的記憶體位置,宣告一個變數時,就是在告知編譯器這個變數可以存放什麼型別(佔據多少個位元組的記憶體)。 什麼是基本型別變數 一、定義 JAVA語言本身定義的整型、字元型、浮點型和布林型別是基本型別變數,通俗來說可利用關鍵字宣告的變數
python程式設計變數和簡單資料型別
用引號括起來的都是字串,這裡與c不同,c中單引號括起來的是字元,雙引號括起來的是字串。 修改字串的大小寫 1.title()以首字母大寫的方式顯示字串 1 name=“ada lovelace” 2 print(name.title()) 3 輸出為: 4 Ada Lovelac
shell程式設計技術和例項--《linux0.01核心分析與作業系統設計》
雖然不知道盧軍到底是何許人也,但是他的這本書確實寫得淺顯易懂,頗具培訓教材的意味。 linux的shell程式設計從unix起步,早期作為一種人機互動工具而呈現,經過多年的成長進步和發展。先後出現了
shell指令碼之shell內部變數和環境變數
這篇部落格介紹:1、部分常用的內部變數2、環境變數變數的分類可以參考:點選開啟連結1、部分常用的內部變數: ⑴ # 說明:$#變數是命令列引數或位置引數的數量 ⑵ - 說明:$-變數是傳遞給shell指令碼的執行標誌 ⑶ ?
條款5:類拷貝賦值操作符不能作用於-》常量成員變數和引用成員變數
1.知識點: 什麼時候一個空類,不再是空類了呢?當c++編譯器處理之後。 如果沒有定義,編譯器會為你產生四個函式: 1) 預設建構函式 2) Copy建構函式 3) 賦值建構函式 4) 解構函
基本型別變數和引用型別變數的實參和形參
傳參即是實參的值賦給形參。對於基本型別的形參,在方法內部對形參的修改只會侷限在方法內部,不會影響實參。 比如,給Calculator增加一個increase(int)方法: class Calculator { public int add(int a,
基本型別變數和引用型型別變數
1、所有區域性變數都放在棧記憶體中儲存,不管其是基本型別的變數還是引用型別的變數,都儲存在各自的方法棧區中;但引用型別變數所引用的物件(陣列物件、普通java物件)則總是儲存在堆記憶體中。 2、全域性變數作為物件 的一部分,初始化物件時,會儲存在堆中。 3、引用變數何時只是棧(stack)記憶體中的變數本
C++基礎(3)區域性變數和引用
1.區域性變數 在C++語言中,允許在程式碼塊的任何地方定義區域性變數;而在C語言程式中,區域性變數必須集中定義在可執行語句的前面。 一般來說,在較短的函式程式碼中,將區域性變數在函式開始位置集中定義比較好,這樣在程式碼維護時能夠迅速確定變數的定義位置;而在
Shell程式設計-03-Shell中的特殊變數和擴充套件變數
特殊變數 在Shell中的特殊變數主要分別兩種位置引數變數、狀態變數兩種。 位置引數變數 Shell中的位置引數變數主要是指$0、$1、$#等,主要用於從命令列、函式或指令碼執行等地方傳遞引數。詳細說明如下所示: $0:獲取當前執行的Shell指令碼的檔名,如指令碼中包含路徑,則
Shell程式設計中的“區域性變數”和“匯出變數”
http://roclinux.cn/?p=1277 為了防止某些網站的惡性轉載,特在每篇文章前加入此資訊,還望讀者體諒。 === [正文開始] 如果你對子Shell的概念不甚瞭解,如果你對export的用法還沒吃透,如果你不知道Shell如何管理你的變數,請
shell程式設計之變數以及awk命令和rename命令
常用的環境變數可以用env和set檢視,但是最全面的還是man bash來檢視。 在這裡舉例一些常用的環境變數echo $HOSTNAME 檢視主機名 echo $HOSTTYPE 檢視主機系統型別 echo