SHELL編程入門

SHELL編程入門

Linux系統分層如下:用戶層、應用層、Shell層、內核層、硬件層

Shell是一個用c語言編寫的程序,它是用戶使用Linux的橋樑。Shell既是一種命令語言,又是一種程序設計語言

Shell是指一種應用程序,這個程序提供了一個界面,用戶通過這個界面訪問操作系統的內核服務

Shell編程基礎

我們可以使用任意一種文本編輯器編寫Shell腳本(vi、gedit等),但是它必須以以下內容開始:

#!/bin/bash(推薦使用)

#!是特殊符號,用來表示shell腳本程序

變量賦值和引用

在Shell編程中,使用變量無需事先聲明,同時變量的命令規則如下:

  • 首個字符必須爲字母
  • 中間不能有空格,但是可以用‘_’
  • 不能使用標點
  • 不能使用bash關鍵字

變量賦值語法:變量名=值(不能有空格)

變量的引用:’$’,示例如下:

#!/bin/bash
a="Hello World"
echo "a is:" $a

有時變量名和文本會混淆,可以使用{變量名},以區別變量和文本

num=1
echo "This is the $numnd"	#num nd兩個會出現混淆
#應更改爲
echo "This is the ${num}nd"

shell默認賦值類型爲字符串

Shell流程控制

if語句

“if”表達式如果條件爲真,就會執行then後的部分:

if ...;then
...
elif...;then
...
else
...
fi

如果進行條件判斷,需要使用"[ ]"(if後有空格,且判斷語句也需要帶上空格)

#!/bin/bash
if [ ${SHELL} = "/bin/bash" ]; then
   echo "OK"
fi

case語句

case表達式可以用來匹配一個給定的字符串,而不是數字

case ... in
...)
do something here ;;
...)
do something here ;;
esac

程序實例如下:

#!/bin/bash
case $1 in
"1")
	echo "This is 1" ;;
"2")
	echo "This is 2" ;;
esac

*注意:1cargv[1]1是特殊符號,代表傳遞給該腳本的第一個參數值,類似於c中的argv[1],而表示所有參數

select語句

select表達式是bash中的一種拓展應用,擅長於交互式場景,用戶可以在一組值中進行選擇

select var in ...;do
break;
done
...now $var can be used...

select實例如下:

#!/bin/bash
echo "What's your select?"
select var in "A.---" "B.----" "C.----" "D.----";do
  break;
done
echo "Your select is ${var}"

注意:每個選項之間有空格

while/for循環

while循環

while...;do
	...
done

for循環

for var in ...;do
	...
done

for循環實例:

#!/bin/bash

for var in a b c ; do
	echo "$var"
done

腳本運行將會輸出a、b、c

Shell中的特殊符號

  • “”可以防止變量名代替字符串,‘’則更加嚴格

    echo $SHELL
    echo "$SHELL"
    echo '$SHELL'
    
    #程序運行結果如下:
    /bin/bash
    /bin/bash
    $SHELL
    
  • Here Document

    當需要將幾行文本信息傳遞給一個命令時,就可以使用Here Document

    command << text
    	****
    	****
    text(頂格寫)
    

    例如:

    #!/bin/bash
    
    cat << text
    1111111
    2222222
    3333333
    text
    

    腳本運行之後將輸出兩個text中間的內容

Shell函數

函數定義

function function_name()
{
    ...
}

#函數調用
function_name

函數使用實例如下:

#!/bin/bash

function hello()
{
		echo "Hello World"
}

hello
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章