日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Linux之Shell脚本入门

發(fā)布時(shí)間:2025/3/20 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux之Shell脚本入门 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Shell概述

Shell是一個(gè)命令行解釋器,它接受應(yīng)用程序/用戶(hù)命令,然后調(diào)用操作系統(tǒng)內(nèi)核。

Shell還是一個(gè)功能強(qiáng)大的編程語(yǔ)言,易編寫(xiě)、易調(diào)試、靈活性強(qiáng)。

二、Shell腳本入門(mén)

1.腳本格式

腳本以#!/bin/bash開(kāi)頭

2.第一個(gè)Shell腳本

(1)需求

創(chuàng)建一個(gè)Shell腳本,輸出helloworld

(2)實(shí)操

touch helloworld.sh vim helloworld.sh

在helloworld.sh中輸入如下內(nèi)容:

#!/bin/bash echo 'helloworld'

(3)執(zhí)行方式

第一種:采用bash或sh+腳本的

sh+腳本的相對(duì)路徑(不用賦予腳本+x權(quán)限)

sh helloworld.sh

sh+腳本的絕對(duì)路徑

sh /home/depo/shell/helloworld.sh

bash+腳本的相對(duì)路徑

bash hellworld.sh

bash+腳本的絕對(duì)路徑

bash /home/depo/shell/helloworld.sh

第二種:采用輸入腳本的絕對(duì)路徑或相對(duì)路徑執(zhí)行腳本(必須具有可執(zhí)行權(quán)限+x)

首先賦予helloworld.sh腳本的+x權(quán)限

chmod 777 helloworld.sh

執(zhí)行腳本

相對(duì)路徑: ./helloworld.sh 絕對(duì)路徑: /home/depo/shell/helloworld.sh

注意:第一種執(zhí)行方式,本質(zhì)是bash解析器幫你執(zhí)行腳本,所以腳本本身不需要執(zhí)行權(quán)限。第二種執(zhí)行方法,本質(zhì)是腳本需要自己執(zhí)行,所以需要執(zhí)行權(quán)限。

3.第二個(gè)Shell腳本:多命令處理

#!/bin/bash ? touch test.txt echo "i love java" >> test.txt

三、Shell中的變量

1.系統(tǒng)變量

(1)常用系統(tǒng)變量

$HOME、$PWD、$SHELL、$USER等

(2)實(shí)操

查看系統(tǒng)變量的值

[depo@dev shell]$ echo $HOME /home/depo

2.自定義變量

(1)基本變量

定義變量: 變量=值

撤銷(xiāo)變量: unset 變量

聲明靜態(tài)變量: readonly 變量 注意:不能unset

(2)變量定義規(guī)則

  • 變量名稱(chēng)可以由字母、數(shù)字和下劃線組成,但是不能以數(shù)字開(kāi)頭,環(huán)境變量名建議大寫(xiě)

  • 等號(hào)兩側(cè)不能由空格

  • 在bash中,變量默認(rèn)類(lèi)型都是字符串類(lèi)型,無(wú)法直接進(jìn)行數(shù)值運(yùn)算

  • 變量的值如果有空格,需要使用雙引號(hào)或單引號(hào)括起來(lái)

(3)實(shí)操

1.定義變量A

A=5 echo $A

2.給變量A重新賦值

A=8 echo $A

3.撤銷(xiāo)變量A

unset A echo $A

4.聲明靜態(tài)的變量B=2,不能unset

[depo@dev shell]$ readonly B=2 [depo@dev shell]$ echo $B 2 [depo@dev shell]$ unset B -bash: unset: B: 無(wú)法反設(shè)定: 只讀 variable [depo@dev shell]$

5.在bash中,變量默認(rèn)是字符串類(lèi)型

[depo@dev shell]$ C=1+2 [depo@dev shell]$ echo C C [depo@dev shell]$

6.可把變量提升為全局環(huán)境變量,供其他Shell程序使用

將變量C提升為全局變量:

export C

修改helloworld.sh:

#!/bin/bash ? ? echo "helloworld" echo $C

運(yùn)行:

[depo@dev shell]$ ./helloworld.sh helloworld 1+2

3.特殊變量:$n

(1)基本語(yǔ)法

$n:n為數(shù)組,$0代表該腳本名稱(chēng),$1-$9代表第一到第九個(gè)參數(shù),十以上的參數(shù)需要用大括號(hào)包含,如果${10}

(2)實(shí)操

touch parameter.sh vim parameter.sh #!/bin/bash ? echo "$0 $1 $2 $3" ? ? ?

執(zhí)行該腳本

[depo@dev shell]$ sh parameter.sh abc yfy nihao parameter.sh abc yfy nihao

4.特殊變量:$

(1)基本語(yǔ)法

$#:獲取所有輸入?yún)?shù)個(gè)數(shù),常用于循環(huán)

5.特殊變量:$*、$@

(1)基本語(yǔ)法

$*:這個(gè)變量代表命令行中所有的參數(shù),把所有的參數(shù)看成一個(gè)整體

$@:這個(gè)變量也代表命令行中所有的參數(shù),不過(guò)把每個(gè)參數(shù)區(qū)分對(duì)待

(2)實(shí)操

打印輸入的所有參數(shù)

vim parameter.sh ? #!/bin/bash ? echo "$0 $1 $2 $3" echo $# echo $* echo $@

執(zhí)行:

[depo@dev shell]$ sh parameter.sh abc yfy nihao parameter.sh abc yfy nihao 3 abc yfy nihao abc yfy nihao

5.特殊變量:$?

(1)基本語(yǔ)法

$?:最后一次執(zhí)行的命令的返回狀態(tài)。如果這個(gè)變量的值為0,證明上一個(gè)命令正確執(zhí)行

(2)實(shí)操

判斷helloworld.sh腳本是否正確執(zhí)行

[depo@dev shell]$ ./helloworld.sh helloworld 1+2 [depo@dev shell]$ echo $? 0 [depo@dev shell]$

四、運(yùn)算符

1.基本語(yǔ)法

(1)$((運(yùn)算符))或$[運(yùn)算符]

(2)expr +,-,*,/,%. 加減乘除取余

2.實(shí)操

(1)計(jì)算3+2的值

[depo@dev shell]$ expr 2 + 3 5

(2)計(jì)算(2+3)x4的值

expr一步完成計(jì)算

expr `expr 2 + 3` \* 4

采用$[運(yùn)算式]方式

S=$[ (2+4)*4 ]

?

總結(jié)

以上是生活随笔為你收集整理的Linux之Shell脚本入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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