變數用來儲存資訊,不能以數字開頭,可以由字母、下劃線、數字組成。
預設型別時字串型別,進行數值運算時,要指定變數型別為數值型。
賦值用=號,變數和等號之間不能有空格,變數裡有空格時,要用單引號或雙引號括起來
1、使用者自定義變數
定義變數:
name="hello"
呼叫變數: 變數名前加$
echo $name
變數疊加:
name="$name"world
name=$world
set檢視變數
unset刪除變數
2、環境變數
使用者自定義變數只在當前shell中生效
環境變數寫入配置檔案後,在所有shell中生效
export 變數名=變數值
env查詢變數
unset刪除變數
path //
ps1 //定義系統提示符的變數
3、位置引數變數
向指令碼中傳遞引數或資料
$n n為數字,$0表示命令本身,$1-$9代表第乙個引數到第九個引數,十以上要用大括號包含,$
$* 代表命令列中的所有引數,把所有引數看作乙個整體
$@ 代表命令列中的所有引數,把所有引數區別對待
$# 代表命令列中的所有引數的個數
例子:vi canshu1.sh //編寫乙個指令碼,功能是輸出從鍵盤上輸入的內容
/#!/bin/bash
echo $1 輸出第乙個引數的內容
echo $2 輸出第二個引數的內容
echo $3 輸出第三個引數的內容
/chmod 777 canshu1.sh //要修改許可權
./canshu1.sh 11 22 33 //結果就會輸出11 22 33 這三個數
4、預定義變數
$? 最後一次執行命令的返回狀態,值為0,表示正確執行,非0,不正確
$$ 當前程序的程序號
$! 後台執行的最後乙個程序的程序號
例子:輸入:
lsecho $? 輸出0,因為ls正確執行
lstbhbj
echo $? 輸出127,因為沒有這個命令,輸出的數字是系統定義好的
read [選項][變數名]
-p 提示資訊
-t 秒數 等待時間
-n 字元數 指定輸入的字元數
-s 隱藏輸入的資料,例如輸入密碼時
例子:vi canshu2.sh //編輯canshu2.sh指令碼
//#!/bin/bash
read -t 20 -p "please input name" name //輸入姓名
echo $name
read -t 20 -s -p "please input name" age //隱藏輸入年齡
echo $age
read -n 10 -t 20 -p "please input name" ch //輸入長度為10的ch
echo $ch
/chmod canshu2.sh
bash canshu2.sh
5、數值運算與運算子
declare [+/-] [選項] 變數名
+ 取消變數的型別屬性
- 給變數設定型別屬性
-i 將變數宣告為整型
-x 將變數宣告為環境變數
-p 顯示指定變數的被宣告的型別
expr
dd=$(expr $a + $b) +號兩邊有空格,此語句也是求a,b之和
ff=$(($a+$b)) 此語句也是求a,b之和
6、變數測試與內容替換
根據y的值對乙個新的變數x賦值,使用時對照**即可。
Linux Shell指令碼基礎
shell指令碼在處理自動迴圈或大的任務方面可節省大量時間,且功能強大。任何指令碼都可能有注釋,加注釋需要此行的第乙個字元為 直譯器對此行不予解釋。指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知shell使用系統上的 bourne shell直譯器。指令碼...
Linux Shell程式設計基礎
簡單學習了一下shell 程式設計的一些基礎知識,這裡作各總結吧。1,變數 shell變數分為本地變數,環境變數,位置變數和預定義變數 1 本地變數 本地變數是只能在使用者寫的shell指令碼生命週期中有效的變數,在使用者的shell退出之後,該變數就不存在了。一般的定義格式為 local vari...
linux shell基礎命令
建立檔案 touch file1 複製檔案file1成file2 cp file1 file2 複製整個目錄的內容 cp r file1 file2 建立檔案硬連線 cp l file1 file2 建立檔案軟連線 cp s file1 file2 重新命名檔案 mv file1 file2 建立目...