shell指令碼 變數

2021-09-20 18:34:59 字數 1723 閱讀 8166

shell指令碼的基礎知識

(1)shell指令碼的本質

編譯型語言

解釋型語言

shell指令碼語言是解釋型語言

shell指令碼的本質

shell命令的有序集合

(2)shell 程式設計的基本過程

基本過程分為三步:

step1. 建立 shell 檔案

包含任意多行作業系統命令或shell命令的文字檔案;

step2. 賦予shell檔案執行許可權

用chmod命令修改許可權;

step3. 執行shell檔案

直接在命令列上呼叫shell程式.

(3)例項

step1: 建立shell檔案 (可用任何建立文字檔案的方法)

$ cat prog1.sh

date

step2: 賦予執行許可權: (初始文字檔案無執行許可權)

$ chmod 740 prog1.sh

step3: 執行該shell程式

$ prog1.sh

prog1.sh: not found

(shell在標準搜尋路徑中找不到prog1.sh)

step4: 指定路徑或修改環境變數path後執行shell程式

$ ./prog1.sh

2023年 12月 16日 星期二 14:52:57 cst

shell變數

(1)shell變數

shell允許使用者建立變數儲存資料,但不支援資料型別(整型、字元、浮點型),

將任何賦給變數的值都解釋為一串字元

variable=value

a. count=1

b. echo $count

c. date=date

d. echo $date

(2) bourne shell有如下四種變數:

1) 使用者自定義變數

2) 位置變數即命令列引數

3) 預定義變數

4) 環境變數

(3) 使用者自定義變數

1) 在shell程式設計中通常使用全大寫變數,方便識別

$ count=1

2) 變數的呼叫:在變數前加$

$ echo $home

3) linux shell/bash從右向左賦值

$y=y

$ x=$y

$ echo $x

y 4) 使用unset命令刪除變數的賦值

$ z=hello

$ echo $z

hello

$ unset z

$ echo $z

(4) 位置變數

$0 與鍵入的命令列一樣,包含指令碼檔名

$1,$2,……$9 分別包含第乙個到第九個命令列引數

$# 包含命令列引數的個數

$@ 包含所有命令列引數:「$1,$2,……$9」

$? 包含前乙個命令的退出狀態

$* 包含所有命令列引數:「$1,$2,……$9」

$$ 包含正在執行程序的id號

(5) 常用shell環境變數

home: /etc/passwd檔案中列出的使用者主目錄

ifs:internal field separator, 預設為空格,tab及換行符

path :shell搜尋路徑

ps1,ps2:預設提示符($)及換行提示符(>)

term:終端型別,常用的有vt100,ansi,vt200,xterm等

shell指令碼(變數)

1 定義及賦值 格式 變數名 變數值 等號兩邊沒有空格 2 引用 檢視 變數 格式 變數名 例 title shaodianlingxing echo title 輸出 shaodianlingxing 3 雙引號 功能 允許引用 轉義 例如 echo title group 輸出 shaodian...

shell指令碼 變數

1 shell 指令碼中變數分為三種,區域性變數,環境變數,shell變數。區域性變數 定義在函式內部 基本型別 local num hello world 區域性變數在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。如果同名,shell函式定義的loc...

shell指令碼變數

環境變數和本地變數,環境變數是具有全域性屬性的。在互動式shell下面定義變數 value 100 這定義的即為本地變數,如果要將其變成環境變數則需要export value 匯出環境變數,取消環境變數則可以使用unset命令。環境變數是可以被子程序繼承的更是可以被子子孫孫都繼承的。環境變數在程式替...