在linux中,shell不但能與使用者進行逐個命令互動執行,也可以通過指令碼語言進行程式設計。
第乙個shell程式
1、寫shell程式
用vim開啟並建立乙個shell檔案,開頭固定 #!/bin/bash,表示用的是 bash 語法,# 後面為注釋,date 顯示日期,echo 列印字串
[zcy@zcy ~
]$ mkdir myprogram
[zcy@zcy ~
]$ cd myprogram/
[zcy@zcy myprogram]$ vim first.sh
#!/bin/bash
#this is my first sh
date
echo "hello world!"
[zcy@zcy myprogram]$ echo $shell
/bin/bash
//預設的shell為 bash
[zcy@zcy myprogram]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
//檢視系統內建了那幾種shell
2、執行shell程式
第一種 直接執行
#/usr/program/first
[zcy@zcy myprogram]$ chmod a+x first.sh
[zcy@zcy myprogram]$ ll first.sh
-rwxrwxr-x.
1 zcy zcy 58
6月 619:
43 first.sh
[zcy@zcy myprogram]$ .
/first.sh
2023年 06月 06日 星期六 19:43
:42 cst
hello world!
第二種 利用shell程式執行
#bash /usr/program/first
[zcy@zcy myprogram]$ sh -x first.sh
+ date
2023年 06月 06日 星期六 19:44
:07 cst
+ echo 'hello world!'
hello world!
[zcy@zcy myprogram]$ sh first.sh
2023年 06月 06日 星期六 19:44
:46 cst
hello world!
shell語法介紹(1)使用變數
在shell程式中所有變數儲存的值都是字串。
在linux的shell中,可以使用以下幾種變數:
1.環境變數:是指與shell執行的環境相關的一些變數。shell環境變數在shell啟動時,就已定義好,如path,home,mail等,這些變數使用者還可以重新定義。可使用set命令檢視系統中各環境變數的值。
2.使用者自定義變數: 變數名=變數值
3.預定義變數(系統變數):使用者不能修改,只能引用這些變數。所有的預定義變數都是由「$」符號與另乙個符號組成的,常用的shell預定義變數有以下幾個:
$#:位置引數的數量
$*:所有位置引數的內容
$?:命令執行後返回的狀態
$$:當前程序的程序號
$!:後台執行的最後乙個程序號
$0:當前執行的程序名
#!
/bin/bash
echo "the letter you like is:$1 $2 $3" #輸出位置變數的引數
echo "本指令碼名:" $0
echo "本指令碼中引數的個數:" $#
cd /hom
#故意輸錯
echo #?
#上一條命令執行失敗 返回非0
cd /home
echo #?
echo "pid;" $$
(2)輸入/輸出內部命令
1.輸出命令:echo
2.輸入命令:read
舉例3:編寫乙個shell程式contact,接受使用者輸入的使用者名稱和**號碼,將這些資訊顯示在終端上,並儲存到contact.txt檔案vi中。
#!
/bin/bash
read -p "your name and phone:" name phone
echo $name,$phone
echo $name,$phone>contact.txt
shell除錯除錯跟蹤
1.-n選項
bash命令的「-n」選項使shell不執行指令碼,僅檢查指令碼中的語法問題。
2.-v選項
bash命令的「-v」選項使shell在執行程式過程中,將讀入的每乙個命令列都原樣輸出到終端。
3.-x選項
bash命令的「-x」選項使shell在執行程式過程中,把執行的每乙個命令在行首用乙個「+」號加上對應的命令顯示在終端上,並把每乙個變數和該變數的值也顯示出來。使用該選項更方便跟蹤程式的執行過程。
例項
1.增加使用者賬戶
舉例20:編寫乙個shell程式addaccount.sh,在系統中增加四個賬戶,同時設定他們的初始密碼為123456,主組群為wl15。
![在這裡插入描述](
2.統計子目錄和檔案數量
舉例21:
編寫乙個shell程式count.sh,統計當前目錄中子目錄以及檔案的數量。
九九乘法表
舉例22:編寫乘法口訣cfkj.sh,列印出九九乘法表。
Linux學習筆記之Shell入門
shell 是乙個命令列直譯器,它為使用者提供了乙個向 linux 核心傳送請求以便執行程式的介面系統級程式,使用者可以用 shell 來啟動 掛起 停止甚至編寫一些程式。shell 處在核心與外層應用程式之間,起著協調使用者與系統的一致性 在使用者與系統之間進行互動的作用。圖 1 是 linux ...
Linux系統Shell指令碼的入門學習
這段時間工作上接觸到linux下的shell指令碼,以前對shell程式設計是個門外漢,經過這幾天的鍛鍊,總算可以窺見一斑 使用shell指令碼,注定離不開很多指令碼命令,也可以說是linux系統下的,比如簡單的echo,uname,grep等 作為初學者,自然需要了解其基本的語法以及書寫規範,簡單...
Linux入門學習 Shell基本命令
使用系統中的圖形介面 使用shell命令 在命令列鍵入以下命令,系統立即關機 sudo shutdown h now在命令列鍵入以下命令,系統立即重新啟動 sudo shutdown r now sudo reboot now一位老師在對學生進行上機測試,時間限定在45分鐘內,否則計算機將自動關機。...