1. 程式人生 > >Linux0基礎深度解析shell簡介01

Linux0基礎深度解析shell簡介01

shell

一、shell簡介
------------
用戶
|
終端 (相當於bash的接口)
|
shell(殼) bash 大多數Linux系統默認的shell環境
|
內核
用戶通過終端輸入命令,提交給shell,再調用內核中的系統功能對命令進行執行。shell環境是用戶使用linux的橋梁,它使得用戶能與操作系統的核心功能進行交互。

shell的兩種執行命令的方式:
交互式:解釋執行用戶的命令,用戶輸入一條命令,shell就執行一條。
批處理:用戶事先寫一個shell腳本(scripts),其中有很多命令,讓shell一次把這些命令執行完,而不用一條一條的敲命令。


編寫腳本
打開文本編輯器,新建一個文件test.sh
#!/bin/bash --#!是一個約定的標記,它告訴系統這個腳本需要什麽解釋器來執行,/bin/bash是bash的解釋器命令路徑
echo "what is your name?"
echo "my name is lily."
echo "hi lily!"
執行腳本
chmod +x ./test.sh --腳本在當前目錄,也可以用絕對路徑
./test.sh
也可以直接使用 sh ./test.sh


二、shell變量
------------
1.定義變量
變量名=“變量內容”
如:myname=“lily”
註意事項:
1)變量名和等號之間以及等號和變量內容之間不能有空格
2)變量名只能包含數字、字母和下劃線,且必須以字母開頭
3)變量名不能使用bash裏的關鍵字

2.使用變量
$變量名 --獲取變量內容
如:echo $myname
或 echo ${myname}
echo "myname is $myname"

3.變量類型
shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行。
局部變量:局部變量是在腳本或命令中定義的,僅在當前shel實例中有效,其他shell啟動的程序不能訪問局部變量。
環境變量:所有程序,包括shell啟動的程序,都能訪問環境變量,有些程序需要環境變量來保證其正常運行。必要的時候shell腳本也可以定義環境變量。
特殊變量:除了數字、字母和下劃線,還包含其他字符的變量成為特殊變量,如下:
$0 當前腳本
$n 傳遞給腳本或函數的參數,n是一個數字,表示第幾個參數,如,第一個參數是$1,第二個參數是$2
$# 傳遞給腳本或函數的參數個數
$* 傳遞給腳本或函數的所有參數
$@ 傳遞給腳本或函數的所有參數
$? 上個命令的退出狀態,上一條命令執行成功則返回0,失敗返回非0的數值
$$ 當前shell進程id。對於shell腳本而言就是這個腳本所在的進程id

--舉例說明:
vim var.sh --新建一個shell腳本
#!/bin/bash
echo "文件名:$0"
echo "參數1:$1"
echo "參數2:$2"
echo "總參數個數:$#"
echo "所有參數:$*"
echo "所以參數:$@"
echo "上個命令的執行情況:$?"
echo "當前shell進程id:$$"

sh var.sh a b c --執行腳本,並在後面接上參數
文件名:var.sh
參數1:a
參數2:b
總參數個數:3
所有參數:a b c
所以參數:a b c
上個命令的執行情況:0 --0代表上個命令執行成功,非零表示上個命令執行失敗
當前shell進程id:4982

4.read命令
read命令將接收到的輸入的數據放入一個標準變量中。
echo -n “enter your name:" --參數-n的作用是不換行,echo默認是換行的
read name
echo "hello $name"

read -p "enter your name: " name --參數-p允許在read命令行中直接指定一個提示
echo "hello $name"

Linux0基礎深度解析shell簡介01