目錄
[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 選項 檔...