日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

shell脚本实例

發(fā)布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell脚本实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一個腳本

#!/bin/bash

echo "Hello World !“

1.例如腳本test.sh中第一行一定是 “#!/bin/bash” 它代表的意思是,該文件使用的是bash語法。如果不設(shè)置該行,那么你的shell腳本就不能被執(zhí)行。

2.’#’在前面講過表示注釋,也可用來寫腳本說明。即后面跟一些該腳本的相關(guān)注釋內(nèi)容以及作者和創(chuàng)建日期或者版本等等,以供日后查看用,所以寫上注釋是有必要的。另外也供其他系統(tǒng)管理員能看懂你的腳本。

3.該腳本第一行再往下走便是要運行的命令了。

運行 Shell 腳本有兩種方法:

1、作為可執(zhí)行程序 將上面的代碼保存為 test.sh,并 cd 到相應(yīng)目錄: chmod +x ./test.sh #使腳本具有執(zhí)行權(quán)限 ./test.sh 執(zhí)行腳本,我們用vim編輯的文檔默認是不帶有執(zhí)行權(quán)限的,所以需要加一個執(zhí)行權(quán)限,那樣就可以直接使用’./filename’ 執(zhí)行這個腳本了。

2、作為解釋器參數(shù) 這種運行方式是,直接運行解釋器,如: /bin/sh test.sh /bin/bash test.sh 這種方式運行的腳本,不需要在第一行指定解釋器信息,因為腳本解釋器(sh或bash)已經(jīng)明確地被用來執(zhí)行腳本文件test.sh。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.顯示換行? ?echo -e "OK! \n" # -e 開啟轉(zhuǎn)義

     ? echo "It is a test"

? ?輸出結(jié)果:OK!

      It is a test

2.顯示不換行? ?echo -e "OK! \c" # -e 開啟轉(zhuǎn)義 \c 不換行

  ? ? ? ? ? ? ? ? echo "It is a test"

? ?輸出結(jié)果:? OK! It is a test

3.顯示命令執(zhí)行結(jié)果? ? echo `date`? ? ? ? ? ?注意: 這里使用的是反引號 `, 而不是單引號 '。 結(jié)果將顯示當前日期

4.使用變量? ? ? ?使用一個定義過的變量,只要在變量名前面加上美元符號($)即可,例如:

your_name=“rli“

echo $your_name

echo ${your_name} 變量名外面的花括號是可選的,加不加都行,加花括號是為了幫助解釋器識別變量的邊界,比如下面這種情況:

echo "I am good at ${skill}Script" done

如果不給skill變量加花括號,寫成 echo "I am good at $skillScript“ 解釋器就會把skillScript當成一個變量(其值為空),代碼執(zhí)行結(jié)果就不是我們期望的樣子了。

  只讀變量? ? readonly? var? 使用 readonly 命令可以將變量定義為只讀變量,只讀變量的值不能被改變。

 ? ?刪除變量? ? 使用 unset 命令可以刪除變量。語法: unset variable_name

?

Shell test 命令

Shell中的 test 命令用于檢查某個條件是否成立,它可以進行數(shù)值、字符和文件三個方面的測試。

數(shù)值測試

-eq   等于則為真

-ne   不等于則為真

-gt   大于則為真

-ge   大于等于則為真

-lt   小于則為真

-le   小于等于則為真

字符串測試

=   等于則為真

!=   不相等則為真

-z   字符串 字符串的長度為零則為真

-n   字符串 字符串的長度不為零則為真

文件測試

-e 文件名?   如果文件存在則為真

-d 文件名   如果文件存在且為目錄則為真

-f 文件名   如果文件存在且為普通文件則為真

-r 文件名   如果文件存在且可讀則為真

-w 文件名   如果文件存在且可寫則為真

-x 文件名   如果文件存在且可執(zhí)行則為真

-s 文件名   如果文件存在且至少有一個字符則為真?

-c 文件名   如果文件存在且為字符型特殊文件則為真

-b 文件名   如果文件存在且為塊特殊文件則為真

?

Shell 傳遞參數(shù)

我們可以在執(zhí)行 Shell 腳本時,通過一種shell腳本預(yù)設(shè)變量向腳本傳遞參數(shù),腳本內(nèi)獲取參數(shù)的格式為:$n(即腳本預(yù)設(shè)變量)。n?代表一個數(shù)字,1 為執(zhí)行腳本的第一個參數(shù),2 為執(zhí)行腳本的第二個參數(shù),以此類推……

另外,還有幾個特殊字符用來處理參數(shù):

$# 傳遞到腳本的參數(shù)個數(shù)

$* 以一個單字符串顯示所有向腳本傳遞的參數(shù)。 如“$*”,即指用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數(shù)。

$$ 腳本運行的當前進程ID號(= PID = Process ID)

$! 后臺運行的最后一個進程的ID號

$? 顯示上一個命令的退出狀態(tài)。0表示沒有錯誤,其他任何值表明有錯誤。

?

數(shù)組

數(shù)組(Array)中可以存放多個值。Bash Shell 只支持一維數(shù)組(不支持多維數(shù)組),初始化時不需要定義數(shù)組大小。

與大部分編程語言類似,數(shù)組元素的下標由0 (即zero-based)開始。 Shell 數(shù)組用括號來表示,元素用"空格"符號分割開,

語法格式如下: array_name=(value1 ... valuen)

實例

#!/bin/bash

my_array=(A B "C" D)

我們也可以使用下標來定義數(shù)組:

array_name[0]=value0

array_name[1]=value1

array_name[2]=value2

讀取數(shù)組

讀取數(shù)組元素值的一般格式是: ${array_name[index]}

實例

#!/bin/bash

my_array=(A B "C" D)

echo "第一個元素為: ${my_array[0]}"

echo "第二個元素為: ${my_array[1]}"

echo "第三個元素為: ${my_array[2]}"

echo "第四個元素為: ${my_array[3]}"

獲取數(shù)組中的所有元素 使用@ 或 * 可以獲取數(shù)組中的所有元素,例如:

echo "數(shù)組的元素為: ${my_array[*]}"

echo "數(shù)組的元素為: ${my_array[@]}"

獲取數(shù)組的長度 獲取數(shù)組長度的方法與獲取字符串長度的方法相同,例如:

echo "數(shù)組元素個數(shù)為: ${#my_array[*]}"

echo "數(shù)組元素個數(shù)為: ${#my_array[@]}"

?

流程控制

和Java、PHP等語言不一樣, sh/bash的流程控制不可為空。如果else分支沒有語句可執(zhí)行,就不要寫這個else。

?

if語句

if 判斷語句;then

  command

fi

?

for 循環(huán)語句

for var in item1 item2 ... itemN

do

  command

done

?

?while循環(huán)語句

while 循環(huán)用于不斷執(zhí)行一系列命令,也用于從輸入文件中讀取數(shù)據(jù);命令通常為測試條件。其格式為:

while 判斷條件

do

  command

done

?

case 語句

Shell case語句為多選擇語句??梢杂胏ase語句匹配一個值與一個模式,如果匹配成功,執(zhí)行相匹配的命令。case語句格式如下:

case 值 in

模式1)

  command ;;

模式2) 

  command ;;

esac

?

Shell 函數(shù)

linux shell 可以用戶定義函數(shù),然后在shell腳本中可以隨便調(diào)用。

fun3()

{

echo "\$0 = $0"

# 獲取調(diào)用函數(shù)時 傳入的參數(shù)

echo "\$1 = $1"

echo "\$2 = $2" return 22

}

#調(diào)用函數(shù)并傳遞參數(shù) fun3 params1 params2 params3

?

用shell腳本編程計算兩個數(shù)的和。

#!/bin/bash

a=1

b=2

sum=$[$a+$b]

echo “Sum is $sum.”

數(shù)學(xué)計算要用’[ ]’括起來并且外頭要帶一個’$’。 腳本執(zhí)行結(jié)果為: Sum is 3.

轉(zhuǎn)載于:https://www.cnblogs.com/bfcs/p/10710214.html

總結(jié)

以上是生活随笔為你收集整理的shell脚本实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。