1. 程式人生 > >學習Shell指令碼(第二天)

學習Shell指令碼(第二天)

昨天找出了有段時間沒看過的Linux相關的書籍,看了一會之後感覺明白了書中自有黃金屋的道理。

今天就記錄一些關於Shell變數的使用吧。

Shell變數大致分為三類:

1.內部變數:由系統提供,使用者只能使用不能修改(內部變數指能夠對bash shell指令碼行為產生影響的變數,屬於環境變數的範疇)。

2.環境變數:這些變數決定了使用者工作的環境,不需要使用者定義,可以直接在Shell中使用,其中某些變數使用者可以修改。

3.使用者變數:由使用者建立和修改,也稱使用者自定義變數。在Shell指令碼編寫中會經常用到。

在Shell中,變數的賦值使用如下語法格式。

name=string

其中:

1.name是變數名,使用者自定義的通常小寫字母命名。

2."="是賦值符號。兩邊不能直接跟空格,否則Shell將視為命令。

3.string是被賦予的變數值。若string中包含空格、製表符和換行符,則sting必須用'string'或"string"的形式,雙引號內允許變數替換,單引號則不可以。

單引號'',雙引號""的區別是單引號''剝奪了所有字元的特殊含義,單引號''內就變成了單純的字元。雙引號""則對於雙引號""內的引數替換($)和命令替換(``)是個例外。

4.通過在變數名(name)前加$字元,即用$name的形式引用變數的值,引用的結果就是用字串string代替$name。此過程已稱為變數替換。

下面對定義和使用Shell變數舉例

Date=`date`                                                                 
echo "Date is $Date"
  
USERS=`who | wc -l`
echo "Logged in user are $USERS"
   
UP=`date ; uptime`
echo "Uptime is $UP"


                                   

執行結果:

[email protected]:~/桌面$ sh test.sh 
Date is 2017年 10月 11日 星期三 14:35:25 CST
Logged in user are 1
Uptime is 2017年 10月 11日 星期三 14:35:25 CST
14:35:25 up  1:04,  1 user,  load average: 0.13, 0.08, 0.06

反引號``是命令替換,命令替換是指Shell可以先執行``中的命令,將輸出結果暫時儲存,在適當的地方輸出。語法:`command`

相關推薦

學習Shell指令碼(第二)

昨天找出了有段時間沒看過的Linux相關的書籍,看了一會之後感覺明白了書中自有黃金屋的道理。 今天就記錄一些關於Shell變數的使用吧。 Shell變數大致分為三類: 1.內部變數:由系統提供,使用者只能使用不能修改(內部變數指能夠對bash shell指令碼行為產生影響

學習Shell指令碼(第四)

Shell特殊變數使用舉例 #!/bin/sh #ScriptName:test.sh #To test Positional P

從語言學習實例第二(簡單小程序)

c語言學習 三角形面積計算三角形面積 沒有考慮構不成三角形考慮完全另外自我解惑 %f是用於格式化輸入輸出函數,對應類型為float的格式字符。加數字的情況僅適用於輸出函數,比如printf。 其形式為 printf("%a.bf", var); 其中a,b為常數。 含義為: 1 a, 代表輸出占|a|(a的絕

java學習之路-----第二

今天我們說了迴圈中的while   do while  for  還有就是迴圈的巢狀 while: 語法:      while(布林表示式){      

Linux學習入門(第二)--------基本的系統命令

安裝的映象版本是ubuntu 14.04! 1.sudo apt-get  命令 例如:sudo  apt-get  install   sl     //安裝一個名為sl的小程式   終

學習筆記:第二

檔案操作 with open('day2','w',encoding='utf-8') as f: f.write('ndjafnglsf馬翁')with open('day2','r+',encoding='utf-8') as e: print(e.read()) data = e.t

學習python的第二

用戶 none sse 部分 什麽是 one -h close 學習 編程語言 分類: ? 計算語言/匯編語言/高級語言 計算語言: ? 站在計算機的角度,說計算機能聽懂的語言,就是直接用二進制編程,直接操作硬件 優點是最底層,執行速度最快 缺點是最復雜,開發效率最低 匯編

前端學習之HTML第二

                                       Html基礎 複習昨天知識 單標籤 ◆註釋標籤   ctrl+/ ◆水平線標籤   <hr> ◆換行標籤   <br> 雙標籤 ◆段落標籤    <

學習shell指令碼時發現的一些注意事項

1.算術運算子一定要緊挨運算元; 2.賦值操作時,let 後面的整個要用引號包起來; 3.shift可以實現引數位置變數下移一位,具體就是$1=$2 ,$2=$3...  $#遞減 ; 4.$*作為for迴圈列表時,加引號,即 “[email protected]”只迴圈一次並一次性

學習shell指令碼----mtk

#!/bin/bash echo “-----------1.指明直譯器,chmod------------” echo “hello world!” echo “-----------2.定義變數------------” MY_NAME=“zhigou” #變數用大寫,引用使用${}

從新手到系統管理員(二):Linux新手學習Shell指令碼程式設計的五個例子

本文由 [茶話匯] – [Qing] 編譯自 [Avishek Kumar] 轉載請註明出處 例子一:繪製特殊圖形 [code language=”bash”] #!/bin/bash MAX_NO=0 echo -n "Enter Number between (5 to 9) : " re

高階Bash指令碼程式設計指南——一本深入學習shell指令碼藝術的書籍

例子清單 4-5. 位置引數 4-6. wh, whois節點名字查詢 5-2. 轉義符 7-1. 什麼是真? 7-7. zmore 8-1. 最大公約數 9-2. 定時輸入 9-9. 下劃線變數 9-17. 變數長度 9-23. 間接引用 9-30. 使用awk來產生偽隨機數 10-19. 巢狀迴

java學習--集合(第二

宣告:由於學習所用環境為JDk1.8,所有涉及java的程式碼均在JDK1.8環境中測試通過,如果環境不同,可能會有錯誤發生! 一、Comparator介面 使用Comparable介面定義排序順序有侷限性:實現此介面的類只能按compareTo()定義的這一種方式排序。如

html學習之路——第二(1)

html表格 表格由<table> 標籤來定義每個表格均有若干行(由<tr>標籤來定義),每行被分割成若干格(由<td>標籤來定義)。 更多表格例子:http://www.w3school.com.cn/html/html_tables.

spring boot 學習筆記(第二)spring boot整合mybatis

1.spring boot整合mybatis 1.在pom檔案中新增mybatis依賴(如果在建立專案時已經勾選了mybatis選項,就不用新增mybatis-spring-boot-starter了) <dependency> <groupId>

在caffe程式碼裡學習shell指令碼

通用格式: # /usr/bin/env sh 如果執行不是0,則退出 set -e 表示所有引數的內容 [email protected] 表示引數的個數 $# # /usr/bin/env sh set -e s

Csharp學習筆記_kita (第二)namespace

cal oid 沒有 遇到 ring HERE fun string on() 我猜測: 可能以前的代碼工堆代碼的時候,各種類明,函數名,變量名特別多,尤其是在代碼量大的時候更是多的令人發指。 然後後面寫代碼的時候就經常遇到各種對象名稱重復的問題,然後他們沒有辦法就想出了n

學習打卡第二

lose args string sta tput generate mage 輸出流 dex 1 import java.io.IOException; 2 3 public class IOTest { 4 5 public stati

基本語法掌握(shell 學習第二

Shell 傳遞引數 執行 Shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為:$n。n 代表一個數字,1 為執行指令碼的第一個引數,2 為執行指令碼的第二個引數,以此類推…… 其中 $0 為執行的檔名 #!/bin/bash echo "

大資料學習第二——shell程式設計

2.1 基本格式 程式碼寫在普通文字檔案中,通常以 .sh為字尾名 vi hello.sh #!/bin/bash    ## 表示用哪一種shell解析器來解析執行我們的這個指令碼程式 echo "hello world"