Shell程式設計入門例項
圖形化介面的Shell
幼兒園的小孩,可以面對圖形化介面的電腦,手持滑鼠,愉快的上網衝浪
字元型介面的Shell
計算機專業的新生面對的無介面的Linux,用vi編寫一個簡單的
Hello World
,都會感到吃力
什麼是Shell?
Shell是指使用者與計算機互動的介面,分為”圖形化Shell”與”字元型Shell”,個人計算機主要使用圖形化的Shell,伺服器主要使用字元型的Shell
為什麼有了圖形化介面,還要使用字元型介面?
-
對於鍵盤敲得賊6的程式設計師而言,字元型shell和圖形化shell差別不大
-
圖形化介面會消耗更多的資源,對伺服器而言,每一分資源都非常寶貴
-
伺服器要求穩定性高,圖形化介面更容易造成卡頓,會降低伺服器的穩定性
-
為了極致的效能,專業的伺服器軟體,大多是沒有圖形化介面的
程式設計師眼中Shell的”三六九等”…
等級 | Shell分類 |
---|---|
第一梯隊 | zsh |
第二梯隊 | bash, sh |
第三梯隊 | Windows命令列 |
第四梯隊 | Ubuntu, Mac, Windows中的圖形化介面 |
Shell變數
系統變數(在系統環境中有效)
在
zsh
,base
中檢視系統變數env
內建變數(只在特定Shell中有效)
在zsh的配置檔案
.zshrc
中設定export my_name=export zhaozhaoli="把快樂放大!"
重啟zsh,檢視剛設定好的變數
本地變數
- 命令變數
- 普通變數
變數運算(100除以50等於2)
變數佔位
Shell指令碼
Shell指令碼就是把命令按順序放到一起,然後一起執行.執行指令碼的直譯器就是Shell,由於bash是大多數機器的標配,所以在指令碼的首行一般加上
#!/bin/base
來指明bash所在的位置,同時指令碼用.sh
作為字尾來表名自己的身份
- 以求1至1000內奇數和為例
#!/bin/bash
# 求1000以內奇數之和
# 宣告求和的值
let sum=0
# 獲取1至1000的值並迴圈
for n in $(seq 1 1000)
do
# 如果為奇數則執行累加操作
if [ $((n%2)) == 1 ]
then
let sum=sum+n
fi
done
echo "1至1000以內奇數之和為:${sum}"
Shell註釋
#!/bin/bash
# shell指令碼註釋的第一種方式:在行前加 --> # (單行註釋)
echo "shell指令碼可以單行註釋"
:<<!
這裡是shell註釋的第二種方式!
Shell幾乎是和Unix作業系統一起誕生,第一個Unix Shell是肯·湯普遜(Ken Thompson)以Multics上的Shell為模範在1971年改寫而成,並命名Thompson sh。即便是後來流行的bash(shell的一種變體),它的年齡實際上比當前流行的所有的Linux kernel都大,可謂在Linux系統上是先有Shell再有Kernel
!
echo "shell指令碼可以多行註釋"
Shell判斷
#!/bin/bash
echo "經典小程式:"
echo "---求三個數的最大值---"
read -p "請輸入第一個數:" n1
read -p "請輸入第二個數:" n2
read -p "請輸入第三個數:" n3
# 預設第一個值為最大值
let MAX=${n1}
# 將第一個值與第二個值判斷
if [ ${n2} -ge ${MAX} ]
then
# 如果第二個值大於等於最大值則第二值為最大值
MAX=${n2}
fi
# 將最大值與第三個值對比
if [ ${n3} -ge ${MAX} ]
then
# 如果第三個值大於等於最大值則第三個值為最大值
MAX=${n3}
fi
# 輸出最大值
echo "最大值為:${MAX}"
Shell迴圈
#!/bin/bash
# 暴力解高斯問題,求1至100以內的所有數和
let sum=0
for i in $(seq 1 100)
do
sum=$((sum+i))
done
echo "1至100以內所有數和${sum}"
Shell函式
#!/bin/bash
# 將三個數相加
three_add(){
let res=0
echo "指令碼的名稱為$0"
echo "第一個引數為$1"
echo "第二個引數為$2"
echo "第三個引數為$3"
let res=$1+$2
let res=${res}+$3
echo "三個數之和為${res}"
}
# 呼叫函式
three_add 23 45 89
相關文章
- Shell 程式設計入門程式設計
- [翻譯]返回導向程式設計例項入門程式設計
- Linux入門---(三)Shell程式設計Linux程式設計
- shell script程式設計小結——附帶例項程式設計
- LINUX Shell指令碼程式設計例項詳解(一)上Linux指令碼程式設計
- Linux-shell程式設計入門基礎Linux程式設計
- 網路爬蟲筆記2, requests庫入門-2(程式設計例項)爬蟲筆記程式設計
- Websocet 入門例項Web
- Flutter 入門例項Flutter
- TypeScript入門例項TypeScript
- SoapUI入門例項UI
- KafKa Java程式設計例項KafkaJava程式設計
- 設計模式例項程式碼設計模式
- Jmeter beanshell程式設計例項JMeterBean程式設計
- ActiveMQ入門系列二:入門程式碼例項(點對點模式)MQ模式
- Shell程式設計-01-Shell指令碼初步入門程式設計指令碼
- Linux命令列與shell指令碼程式設計入門經驗Linux命令列指令碼程式設計
- Django+MySQL 例項入門DjangoMySql
- Web Components 入門例項教程Web
- Vue專案入門例項Vue
- opengl簡單入門例項
- 入門程式碼程式設計程式設計
- Python程式設計入門Python程式設計
- Shell程式設計程式設計
- 程式設計和網路程式設計入門程式設計
- 《bash shell指令碼程式設計經典例項(第2版)》資源連結清單指令碼程式設計
- 【Oracle】ASM例項安裝入門OracleASM
- MyBatis基於Maven入門例項MyBatisMaven
- React 入門-寫個 TodoList 例項React
- Python——astroplan庫入門例項(二)PythonAST
- Shell程式設計 --- Shell介紹程式設計
- Number 1 — 程式設計入門程式設計
- Flink DataStream 程式設計入門AST程式設計
- java Swing程式設計入門Java程式設計
- Spark程式設計環境搭建及WordCount例項Spark程式設計
- shell程式設計五程式設計
- shell程式設計二程式設計
- Shell程式設計-shell變數1程式設計變數
- Python入門基礎知識例項,Python