bash變數
命名規則
必須以字母下劃線開頭,只能由字母下劃線數字組成。
長度不能超過255個字元
變數名在有效的範圍內必須唯一
在bash中,變數的預設型別都是字串
一 使用者自定義變數
使用者自定義的變數。區域性變數,只在當前shell有效。
格式:變數名=變數值
例如:x=5 # 等號兩邊不能有空格
y='hello world' # 如果變數值中有空格須用引號引起來。
呼叫:echo $x
變數疊加:
x=1x="$x"23 或 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='[\u@\h \w]\$' # 按需求從上述格式中取值
3、語系變數
locale # 查詢當前系統語系
lang : 定義系統主語系
lc_all : 定義整體語系的變數
三 位置引數變數
主要用來向指令碼中傳遞引數或資料。變數名不能自定義,變數作用是固定的
位置引數變數
作用$n
n為數字,$0代表命令本身,$1-$9代表第一到第九個引數,十以上的引數需要用大括號包含,如$
$*這個變數代表命令列中所有的引數,$*把所有的引數看成乙個整體
$@這個變數代表命令列中所有的引數,不過$@把每個引數區分對待
$#這個引數代表命令列中所有引數的個數
四 預定義變數
是bash中已經定義好的變數,變數名不能自定義,變數的作用也是固定的。
預定義變數
作用$?
最後一次執行的命令的返回狀態。如果這個變數的值為0,證明上乙個命令正確執行;如果這個變數的值為非0(具體是哪個數由命令自己決定),則證明上乙個命令執行不正確了。
$$當前程序的程序號(pid)
$!後台執行的最後乙個程序的程序號(pid)
linux shell程式設計之 if語句
一 語句格式 一行中的寫法 if test commands then consequent commands fi 多行的寫法 if 條件 then command else command fi 基本語法記住亮點 1 按照漢語的方式記憶 如果 if 那麼 then 就 否則 else 就 2 記...
Linux shell程式設計之awk sed用法詳解
awk的用法 1.awk的使用 呼叫方式 1.命令列方式 2.將所有awk命令插入乙個檔案,並使awk程式可執行,然後使awk命令直譯器作為指令碼的首行,以便通過鍵入指令碼名稱來呼叫它。3.將所有的awk命令插入乙個單獨檔案,然後呼叫。選項說明 f 域符號 預設為空格 f 指明awk指令碼 2.模式...
LINUX SHELL程式設計之遠端拷貝
使用expect,進行遠端拷貝 1.首先確認你的系統安裝有expect which expect 如果顯示如下,說明已經安裝完expect,如果沒有執行2 usr bin expect 2.yum install expect 3.遠端拷貝 usr bin expect f set password...