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命令。環境變數是可以被子程序繼承的更是可以被子子孫孫都繼承的。環境變數在程式替...