七 Linux shell基礎 bash變數

2021-09-12 12:33:39 字數 2073 閱讀 4673

變數用來儲存資訊,不能以數字開頭,可以由字母、下劃線、數字組成。

預設型別時字串型別,進行數值運算時,要指定變數型別為數值型。

賦值用=號,變數和等號之間不能有空格,變數裡有空格時,要用單引號或雙引號括起來

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 建立目...