1. 程式人生 > >Linux-shell程式設計之bash變數

Linux-shell程式設計之bash變數

Bash變數命名規則

必須以字母下劃線開頭,只能由字母下劃線數字組成。

長度不能超過255個字元

變數名在有效的範圍內必須唯一

在Bash中,變數的預設型別都是字串

一 使用者自定義變數

使用者自定義的變數。區域性變數,只在當前shell有效。

格式:變數名=變數值

例如:x=5 # 等號兩邊不能有空格

           y='hello world' # 如果變數值中有空格須用引號引起來。

呼叫:echo $x  

變數疊加:

x=1

x="$x"23   或  x=${x}23

echo $x  # 輸出123

變數檢視:

set

刪除變數:

unset 變數名  # 不加$

二 環境變數

全域性變數,在當前shell中和當前shell的子shell,子shell的子shell......中都有效

儲存的是和系統操作環境相關的資料。變數可以自定義,但是對系統生效的環境變數名和變數作用是固定的。

1、自定義一個環境變數:

export 變數名=變數值    或  

變數名=變數值

export 變數名

檢視環境變數:

env   或  set

刪除環境變數:

unset 變數名  # 需要在變數宣告的shell中才可以刪除 在子shell中無法刪除

2、對系統起作用的環境變數:

 2.1 $PATH  # 系統搜尋可執行檔案的路徑

臨時修改PATH: PATH="$PATH":/home/sh

永久修改須改配置檔案。

 2.2 PS1變數:

\d  #顯示日期,格式為“星期 月 日”

\H #顯示完整的主機名。如預設主機名 “localhost.localdomain”

\t  #顯示24小時制時間,格式為 HH:MM:SS

\A #顯示24小時制時間,格式為 HH:MM

\u #顯示當前使用者名稱

\w #顯示當前所在目錄的完整名稱

\W #顯示當前所在目錄的最後一個目錄

\$ #提示符。如果是root會顯示提示符# 普通使用者為$

用來修改提示符

PS1='[\[email protected]\h \W]\$'   # 按需求從上述格式中取值

3、語系變數

locale    # 查詢當前系統語系

LANG : 定義系統主語系

LC_ALL : 定義整體語系的變數

三 位置引數變數

主要用來向指令碼中傳遞引數或資料。變數名不能自定義,變數作用是固定的

位置引數變數
作用
$n n為數字,$0代表命令本身,$1-$9代表第一到第九個引數,十以上的引數需要用大括號包含,如${10}
$* 這個變數代表命令列中所有的引數,$*把所有的引數看成一個整體
[email protected] 這個變數代表命令列中所有的引數,不過[email protected]把每個引數區分對待
$# 這個引數代表命令列中所有引數的個數

四 預定義變數

是Bash中已經定義好的變數,變數名不能自定義,變數的作用也是固定的。

預定義變數 作用
$? 最後一次執行的命令的返回狀態。如果這個變數的值為0,證明上一個命令正確執行;如果這個變數的值為非0(具體是哪個數由命令自己決定),則證明上一個命令執行不正確了。
$$ 當前程序的程序號(PID)
$! 後臺執行的最後一個程序的程序號(PID)

相關推薦

Linux-shell程式設計bash變數

Bash變數命名規則 必須以字母下劃線開頭,只能由字母下劃線數字組成。 長度不能超過255個字元 變數名在有效的範圍內必須唯一 在Bash中,變數的預設型別都是字串 一 使用者自定義變數 使用者自定

linux shell程式設計利用環境變數IFS自定義分隔符

預設情況下,bash shell將空格符、製表符、換行符看作是欄位分隔符,如果遇到這些字元,bash shell就會認為字元後是一個新的欄位,這就帶來一種困擾:如果我們想處理包含空格、製表符、換行符的字元就會有麻煩了。bash提供了一種自定義分隔符的機制:環境變數IFS定義

Linux Shell程式設計 for迴圈語句 if條件語句

    最近涉及Linux Shell程式設計,還不太熟悉,對於賦值語句,數值計算,迴圈語句,變數使用都不太熟悉。我不打算一個一個的說明知識點,我打算用最多3個例子說明所有的這些知識點。 Example 1 : <span style="font-size:14px;

Linux shell程式設計:狀態變數

四大特殊狀態變數:$?、 $$、 $!、 $_ $?的作用是:獲取執行上一個指令的執行狀態返回值,返回0表示上一個命令或者程式執行成功,返回的值為非0則表示上一個命令執行失敗。 $$的作用是:獲取當前執行的shell指令碼的程序號PID。 $!的作用是:獲取上一個後臺工

Linux-Shell程式設計建立shell指令碼並執行

1、建立檔案 touch myFirst.sh 2、編輯檔案 vi myFirst.sh 點選鍵盤的字母 I 進行編輯,輸入一下內容 #!/bin/bash # M

linux shell 程式設計if(收藏學習)

if 語句格式if  條件 then  Command else  Commandfi                             別忘了這個結尾 If語句忘了結尾fi test.sh: line 14: syntax error: unexpected end

linux中的shell程式設計變數

shell程式設計主要是為了簡化linux系統管理的。 shell中的變數是一種弱型別的變數,c,java等語言是一種強型別的語言。 linux中的所有的變數預設型別都是字元型別的 零、bash變數的分類 bash變數的型別 變數型別

linuxshell 程式設計變數及數學運算

1.shell中的變數是不分資料型別的,統一按照字串來儲存 2. bash shell只能支援數學整數運算(zsh可以支援浮點) 3.以下都是在bash shell 下進行的數學運算 方法一使用方括號進行基本的整數運算: #!/bin/bash var1=1 var2=2

Linux學習筆記_shell程式設計環境變數配置檔案

shell程式設計之環境變數配置檔案 https://www.imooc.com/learn/361 簡介:本課程是《Tony老師聊shell》系列課程的第三篇,為你帶來常用的Linux環境變數配置檔案的使用。對環境變數配置檔案的功能進行了詳解, 然後又介紹了其他環境變數配置檔案,包括登

Linuxbash變數和邏輯運算

什麼是變數? 變數最初來源於數學,指的是非固定的值可變化的數通常用拉丁字母表示。在計算機中變數它依舊指的是可變化的數,只不過表現形式有些變化。它指的是變數名+所指向的記憶體空間。 變數的特點 變數分強型別變數,與弱型別變數 強型別變數:變數需事先宣告且需提前定義其變數儲存格式 弱

linux中的shell程式設計while迴圈和until迴圈

while迴圈語法: while [ 條件判斷式 ] do 程式語句 條件終止語句 done 例項:求1加到100的和 #!/bin/bash #!從1加到100 i=1 s=0 while [ $i -le 100 ] # 如果變數i

linuxshell 程式設計擴充套件正則表示式

1. ‘+’ 限定字元 +限定符表示前面字元至少出現一次或者多次。與*不同在於0次或者多次 2. '?' 限定符 ?限定前面的字元最多出現一次。即出現0次或者1次 3. 數線 |和圓括號() 例如

Linux-shell程式設計基礎-變數

egrep及擴充套件的正則表示式 egrep = grep -E 擴充套件正則表示式的元字元 字元匹配: .  []  [^] 次數匹配: * :任意次 ?:0或1次 + :1次或多次 {m}:匹配m次 {m,n}:至少m至多n次 錨定: ^  $  \<, \b詞首

shell程式設計變數以及awk命令和rename命令

常用的環境變數可以用env和set檢視,但是最全面的還是man bash來檢視。 在這裡舉例一些常用的環境變數echo $HOSTNAME                  檢視主機名 echo $HOSTTYPE                 檢視主機系統型別 echo

linux基本操作---shell程式設計 while迴圈

java中我們經常用到while迴圈,那麼shell中也有while迴圈: while簡單迴圈 直接看demo: demo1: 求1-10的和 [[email protected]02 software]# cat while1to10.sh

Linux 下的 shell 程式設計 if-else選擇結構

 Linux 中 shell 中if else 的使用方式比較簡單,. 相關的關鍵字有: if, elif , else, fi, 等.   1. if 的判斷表示式是 []   2. if 的範圍

shell程式設計變數型別

shell程式設計中系統預設所有變數都是字串型。當需要用到其他型別的變數是需要手動宣告。宣告格式如下: declare [+/-][選項] 變數名     -i 將變數宣告為整型     -a 將變數宣告為陣列型別     -x 將變數宣告為環境變數     -r 將變數宣

linux系統程式設計程序的環境變數

環境變數: 環境變數,是指在作業系統中用來指定作業系統執行環境的一些引數。通常具備以下特徵: ① 字串(本質) ② 有統一的格式:名=值[:值] ③ 值用來描述程序環境資訊。 儲存形式:與命令列引數類似。char *[]陣列,陣列名environ,內部儲存

linux網路程式設計posix 執行緒(四):posix 條件變數與互斥鎖 示例生產者--消費者問題

#include <unistd.h>#include <sys/types.h>#include <pthread.h>#include <semaphore.h>#include <stdlib.h>#include <stdio.h>

LinuxShell程式設計算術運算和邏輯比較(數值型別、字串型別、檔案型別)

shell程式設計中的算術運算和邏輯比較,主要根據不同運算物件,採用相應的比較、運算方式。 一、數值型 算術運算 ,以變數自增1為例,+ - * / % 等運算方式同理,運算的方式大體四種: i=`expr $i + 1` let i+=1 , let的操作成員不需要