shell簡單入門

2021-09-25 14:29:27 字數 3622 閱讀 1352

shell定義

shell是一種應用程式,可以看做是連線使用者和linux核心的橋梁。它提供了乙個介面供使用者訪問作業系統核心的服務;

shell變數

變數宣告:變數和等號之間不能有空格;

變數使用:

name="neil"

echo $name

echo $ # 花括號的目的是方便識別變數邊界,推薦使用;

唯讀變數

#!/bin/bash

uname="fn"

readonly uname

uname ="shell"

執行bash a.bash命令,得到以下結果:

刪除變數:unset var_name,變數刪除後無法再呼叫,且該命令無法刪除唯讀變數;

shell傳參

字元含義

$#傳遞至指令碼檔案的引數個數

$*以但字串形式顯示所以傳遞至指令碼檔案的引數

$$指令碼執行的當前程序id

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

$@將所有傳遞至指令碼檔案的引數單獨返回,注意與$*的區別,不是以單字串形式

$-與set命令功能相同,顯示shell所使用的當前選項

$?顯示最後命令的退出狀態,0表示無錯誤,否則表示有錯誤

#!/bin/bash

echo "shell傳參例項"

echo "檔名:$0"

echo "第乙個引數:$1"

echo "第二個引數:$2"

echo "引數長度:$#"

echo "所有引數:$*"

for i in "$@"; do

echo $i

done

echo "當前設定:$-"

echo "退出狀態:$?"

shell字串

單引號裡的所有字元會原樣輸出,不會被轉義;

雙引號支援輸出變數和轉義字元;

字串拼接

提取子串

uname="whoami"

echo $ # 輸出 "hoam"

獲取長度

echo $		# 輸出6
查詢子串

str="hello, shell"

echo `expr index "$str" el` # 在str中查詢e或l,輸出2

shell流程控制

條件語句

#!/bin/bash

a=10

b=20

if [ $a -eq $b ]

then

echo "a=b"

elif [ $a -gt $b ]

then

echo "a>b"

else

echo "a

for迴圈

for i in item1, item2 ... itemn

do ***

***echo $i

***done

# 單行格式

while迴圈

#!/bin/bash

var=1

while(($var<5))

do echo $var

let "var++"

done

until迴圈

條件為true時終止迴圈

#!/bin/bash

var=1

until [ $var -gt 3 ]

do echo $var

var=`expr $var + 1`

done

case

結束標誌esac

#!/bin/bash

var=2

case $var in

1) echo "var=1"

;;2) echo "var=2"

;;3) echo "var=3"

;;esac

shell函式

shell函式需要先定義後使用,通過函式名直接呼叫;函式返回值可以在該函式執行後使用$?獲取;

函式返回值獲取

引數傳遞

輸出普通字元:echo helloecho "hello"echo輸出轉義字元:`echo -e 「\e[1;32m hello\twolrd \e[0m」

echo不進行轉義:echo '\t'# 輸出\t

echo結果輸出到指定檔案:echo hello, shell > file顯示命令執行結果:echo `cat file` # 輸出hello, shell

echo以指定顏色輸出:echo -e "\e[1;32m hello\twolrd \e[0m"支援的顏色列表包括: 字元

顏色30m

黑色31m

紅色32m

綠色33m

黃色34m

藍色35m

洋紅36m

青色37m

白色管道符

作用:前一條命令的輸出是後一條命令的操作物件;

格式:cmd1 | cmd2 | cmd3 …

示例:cat file | grep how

netstat -an | grep established | wc -l

參考文獻

shell基礎和簡單入門

1 shell簡介 shell提供了使用者和核心進行互動操作的一種介面,它接收使用者的命令並送入核心執行。shell指令碼語言是linux unix系統上應用廣泛的實用程式語言,所以對於任何乙個希望精通linux作業系統的人,掌握shell指令碼知識都是非常必要的。而它的特點是容易學習,但是精通很難...

Shell命令入門

必要引數 a 全部檔案系統列表 h 方便閱讀方式顯示 h 等於 h 但是計算式,1k 1000,而不是1k 1024 i 顯示inode資訊 k 區塊為1024位元組 l 只顯示本地檔案系統 m 區塊為1048576位元組 no sync 忽略 sync 命令 p 輸出格式為posix sync 在...

shell基礎入門

linux中有好多中不同的shell,但是通常我們使用bash bourne again shell 進行shell程式設計,因為bash是免費的並且很容易使用。所以在本文中筆者所提供的指令碼都是使用bash 但是在大多數情況下,這些指令碼同樣可以在 bash的大姐,bourne shell中執行 ...