linux學習(七 Shell程式設計中的變數

2022-05-15 19:33:11 字數 2272 閱讀 4241

目錄

[root@localhost ~]# vi mytest
echo 你想要輸出的內容

執行指令碼的方法:

sh 你建立的shell指令碼的名字
bash 你建立的shell指令碼的名字
開啟乙個子shell去讀取,不需要有執行許可權

或者

source 你建立的shell指令碼的名字
區別:在當前shell內執行、且不需要有執行許可權,source可以替換成.

. 你建立的shell指令碼的名字
或者

./你建立的shell指令碼的名字
開啟乙個子shell,但是需要有執行許可權

相當於window系統下的環境變數

環境變數

說明path

指定命令的搜尋路徑,以冒號為分隔符

home

指定使用者的主工作目錄

histsize

命令歷史檔案

logname

當前的登入名

hostname

主機的名稱

shell

shell的全路徑名

term

使用者控制終端的型別

pwd當前工作目錄的全稱

ps1命令基本提示符,root使用者是「#」,對於普通使用者是「"$"

環境變數一般都大寫,系統啟動以後自動載入,可寫的環境變數使用者可以隨時修改

命令說明

echo

顯示某個環境變數值

export

設定乙個新的環境變數

env顯示所有環境變數

set顯示本地定義的shell變數

unset

消除環境變數

readonly

設定唯讀環境變數

如圖設定pi環境變數為3.1415926

env命令檢視

shell的系統變數主要在對引數和命令返回值進行判斷時使用,包括指令碼和函式的引數,以及指令碼和函式的返回值。

常用系統變數

系統變數

說明$0

shell程式名

$1-$9

第1~9個命令列引數的值

$*傳遞給指令碼的所有引數,全部引數合為乙個字串

$ #傳遞給指令碼的引數個數

$ $當前程序的id

$ ?最後執行一條命令的退出狀態,返回值為0則成功,非0則失敗

$ !在後台執行最後乙個程序的id

命令列引數的個數大於9的個時,可以使用shift指令將引數左移,獲取第10個以後的引數。也可以用shift n將所有引數一次性左移n位

使用者自定義變數在shell指令碼中使用,他們擁有臨時的儲存空間。在程式執行中值可以改變,這些變數可以設定為唯讀。

在程式中使用變數值的時候,要在變數名前面加乙個字元「$"。這個符號告訴shell要取出變數的值(」==「兩邊不能有空格)

上圖輸出加了$的值為這個變數的值,不加就直接輸出了字串

當複製給變數含有空格、製表符、或者換行符時,要用雙引號把這個字串引起來

當然賦值也可以像下圖所示:

Shell指令碼程式設計(七)

條件語句 1.if then fi語句 if 表示式 then 命令fi 如果表示式為真,則執行命令表中的命令,否則退出if語句。2.if then else fi語句 if 表示式 then 命令1else 命令2fi 如果表示式為真,則執行命令表中的命令,否則執行else下命令。3.if the...

七 shell程式設計 expect

1.expect 前言觀察ssh登入的互動現象,有些程式難以避免的需要互動。如何解決指令碼與程式的互動問題。expert就是專門解決指令碼和程式之間的互動問題 語法 spawn expect的內部命令,啟動乙個shell程式 expect 期望哪些內容 yes no 就send傳送yes。r表示回車...

Linux學習 Shell程式設計01

正規表示式 1.正規表示式基礎 正則是包含匹配,用來匹配在檔案中字串的。grep awk sed等命令可以支援正規表示式。萬用字元是完全匹配,用來在系統中匹配檔名。ls find cp這些命令 這個區分僅限於shell中 2.基礎正規表示式 字元擷取命令 cut欄位提取命令 列擷取 cut 選項 檔...