1. 程式人生 > >小白linux bash 學習一 變數定義

小白linux bash 學習一 變數定義

bash  變數


1 變數

    echo $變數 ,可以通過$變數名或者${變數名} 來獲取變數的內容
    如 echo $PATH  
    使用env命令即可全部列出系統預設的全部系統變量了。

  •    PATH決定了shell將到哪些目錄中尋找命令或程式
  •    HOME當前使用者主目錄
  •    LOGNAME當前使用者的登入名
  •    HOSTNAME指主機的名稱
  •    SHELL前使用者Shell型別
  •    LANG語言相關的環境變數,多語言可以修改此環境變數
  •    PWD當前目錄


不過evn 只是顯示系統的環境變數。當然還有其他預設的變數 ,看可以使用set 命令檢視
set命令不僅會顯示系統預設的變數,也可以連同使用者自定義的變數顯示出來

那麼如何定義一個變數,並給他賦值呢? 

myname=aaa

這樣就完成一個最簡單的變數宣告和賦值,很簡單吧!!

如果我們需要進行更加完整的一些變數賦值,那麼就要好好看一下的內容了。


定義變數時候的規則

a. 設定變數的格式為”a=b”,其中a為變數名,b為變數的內容,等號兩邊不能有空格;

b. 變數名只能由英數字以及下劃線組成,而且不能以數字開頭;

c. 當變數內容帶有特殊字元(如空格)時,需要加上單引號;如果包含$符號,可以直接定義,不用加單引號

如果變數內容裡面需要帶單引號,那麼就需要在內容外面加上雙引號。

d. 單引號可以讓特殊字元變成普通字元,

如myname=$PATH ,獲得變數PATH的值,賦給變數myname

echo myname  

結果是PATH的值

加上單引號 myname='$PATH'

結果是$PATH

e.雙引號,可以保留裡面的特殊字元的作用

myname="$PATH"

結果是PATH的值

f.轉義字元 \ 可以對特殊字元 enter,$ ,\,空格,!等變成一般字元,失去他們的作用

g.如果我們的命令中,需要獲取其他命令的結果,那麼可以使用$()或者反單引號,一般使用$()更加清晰

以上定義出來的變數是字串型別變數,如果我們現在執行命令

a=10+10
echo $a

10+10
看出來了吧。預設變數是字串型別的。

如果我們現在需要定義其他型別的變數該怎麼做?

可以使用declare 的方法

declare  [-a i x r]

-a 陣列

-i  Integer(數字)

-x  把變數變為環境變數

-r 設定變數為只讀型別變數

例如我們現在要定義一個數字型別的變數,並且給他賦值

declare -i  sum
sum=10+10
echo $sum
20

如果我們需要一個數組型別的變數
declare -a
a[0]='aaa'
a[1]='bbb'
echo ${a[0]}
aaa

如果我們需要檢視一個變數的型別


如果我們需要取消某個變數的型別

declare + [a|i] 變數名

前面光講如何設定變數,如果想取消某個變數怎麼辦?只要輸入”unset 變數名即可

以上的這些變數的宣告和賦值,只會在當前shell中生效,如果我們切換使用者,那麼該變數的值就沒有了


獲取字串長度:


string="abcd"
echo ${#string} #輸出 4
提取子字串


string="alibaba is a great company"
echo ${string:1:4} //輸出liba


string="alibaba is a great company"
echo  $(expr index ${string}  great )

找出字串中great的位置

那麼如何讓自己自定義的變數並不僅僅在當前shell 使用呢

如果想要系統所有的使用者都生效,那麼需要修改/etc/profile 檔案

使用vi命令,在檔案中新增一行  ,編輯該檔案的時候,如果當前使用者對檔案沒有寫入許可權,那麼需要先切換到系統使用者賦予許可權或者直接用 root使用者進行修改


寫入檔案之後,可以選擇重啟系統生效,也可以自行命令立刻生效



未完待續





相關推薦

linux bash 學習 變數定義

bash  變數 1 變數     echo $變數 ,可以通過$變數名或者${變數名} 來獲取變數的內容     如 echo $PATH       使用env命令即可全部列出系統預設的全部系統變量了。    PATH決定了shell將到哪些目錄中尋找命令或程式 

linux bash學習()

技術 bsp style code ram number mage 文件 創建 1.請你以 read 指令的用途,撰寫一個 script ,他可以讓使用者輸入:1. first name 與 2. last name, 最後並且在屏幕上顯示:“Your full nam

的java學習之路 “ 選擇結構()”

測試 exti 邏輯運算符 main system 有一個 學習 並且 oid if選擇結構: if選擇結構是根據條件判斷之後再做處理的一種語法結構。 1.if選擇結構的語法: public class Demo{ public static void main(

一個對如何學習Linux的認知

首先: Linux是一個系統,不管這個系統怎麼樣的安全,怎麼樣的複雜,都始終改變不了它是一個系統的本質。 其實一開始學習Linux的時候,我心底始終對Linux有一絲恐懼,或者說有一絲認知,就是覺得Linux很難學,我要花很多精力去學習 然後去網上查詢很多基礎命令,一個一個敲,當然這也是必

):的Flink學習計劃以及進度表

文章目錄 學習計劃 以下幾個階段,其實並不是這麼界限分明(比如你在學視訊時,也完全可以看書看原始碼什麼的),這只是我的大致劃分,適合自己的才是最好的。 第一階段 看視訊 在我看來,看視訊是快速的、粗

應該如何學習Linux,我的一些心得分享.

大家好,今天給大家分享一下0基礎的人如何入門Linux,此文來源:我在上班的路上看到一篇文章,也是寫的0基礎的人如何學習Linux的文章。當時我在想,我寫博文一年多,都是相關Linux及Python等技術的文章,卻從來沒有寫過,我小白到入門的一些過程及學習方法。

Linux bash總結() 基礎部分(適合初學者學習和非初學者參考)

歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Markdown編輯器進行了一些功能

Linux第六天

centos71、系統目錄ls是list的縮寫,ls ls / 只要是列出系統的目錄與文件命令與其功能;[[email protected]/* */ ~]# ls /bin dev home lib64 mnt proc run srv tmp var boot e

前端之每天學習記錄----php(2)數據庫操作軟件

blog 4行 pan 一個數 修改 列數 tor 清0 插入數據 數據庫 存儲數據的倉庫(軟件)(DBA:Database Administrator)數據庫管理員mysqlsqlserveroracle...... 數據庫軟件架構 C(client)->

前端之每天學習記錄----php(6)面向對象

prop 封裝數據 ima 影片 最大的 const object 經理 符號 php面向對象類: 一類共性事物的抽象 比如: eg:車子 共性:類的共性 eg:輪子、能動 對象: 類造出來的 eg:自行

前端之每天學習記錄----js簡單的組件封裝

學習 styles this src 元素 modal info clas mov 設計模式:是解決問題的模板 關於設計模式,可以閱讀湯姆大叔的博文http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 這裏

必看 學習PHP的6個步驟10個技巧

php 教程 在這個終身學習的時代,資訊泛濫的時代,我們需要的能力並不是去背誦相應的知識點,而是掌握學習方式。學習PHP也是如此,有時候技巧和步驟比埋頭苦幹要有效得多。下面小編就和大家分享一下學習PHP的6個步驟(僅僅是簡單概括)和10個技巧。 1、首先需要熟悉HTML/CSS/JS等網頁基本元素,完

linux shell學習

交互 博客 value 定義 設計 int 語言 $2 環境 本博客參考自: http://www.cnblogs.com/waitig/p/5523409.html 《shell從入門到精通》 張春曉編著 Shell簡介 Shell自身是一個用C語言編寫的程序,

【計算機網絡】 一個的DNS學習筆記 (>﹏<)

網絡 relay 自己的 使用 source media top img rdquo 參考書籍 《計算機網絡-自頂向下》 作者 James F. Kurose DNS的作用 DNS是因特網的目錄服務 DNS是因特網的目錄服務,它提供了主機名到IP地址映

的java學習之路 “ 選擇結構(二)”

pre ring 問題 -s stat 適合 static 之路 span switch 選擇結構: 為什麽使用switch選擇結構: switch選擇結構可以更好地解決等值判斷問題。 switch選擇結構的四個關鍵字: switch case default

的java學習之路 “ 類和對象”

之路 抽象 AS 類和對象 可維護 屬性和方法 style “.” 信息 一.※ 萬物皆對象 二.對象的兩個特征: 屬性:對象具有的各種特征 方法:對象執行的操作 對象:用來描述客觀事物的一個實體,由一組屬性和方法構成 三.

的java學習之路 "類的無參方法"

rgs 學習 定義 沒有 java學習 AR public 值類型 它的 Java註釋: //:單行註釋 /**/:多行註釋 /** */:JavaDoc註釋語法: 訪問修飾符 返回值類型 方法名(){

的java學習之路 “ 字符串”

輸入 bsp 轉換成 con substring todo 字符 void inpu 定一個字符串可以使用string類和stringbuffer類。 string類提供了大量的操作字符串的方法,常用的如下: 獲得字符串的長度: length()。 比較字符串:equals

Python的最佳學習方法

基礎語法 子域名 結構 web 適合 分享 面向 端口掃描 網站 給大家介紹幾個比較適合新手的視頻, 1、Python 信息安全工具開發 <<<<使勁戳 本視頻屬於工具類,從Python語言開發基礎講起,由淺入深,講解Python開發信息安全工

新手Linux(Centos6.5)部署java web項目(mysql5.7安裝及相關操作)

UNC cancel linux系統安裝 temporary tran sch statement current datadir 一、安裝   參考:https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yu