初學者的Shell指令碼基礎

2021-10-08 07:16:42 字數 4795 閱讀 6029

六、管道符號【|】的使用

七、變數的作用

八、變數的型別

九、定義乙個新變數

十、賦值時使用引號

十一、從鍵盤輸入的內容為變數賦值

十二、設定全域性變數

十三、運算

十四、環境變數

十五、唯讀變數

十六、位置變數

十七、預定義變數

1)將要執行的命令按順序儲存到乙個文字檔案

2)給指令碼檔案賦予執行許可權

3)可以結合各種shell控制語句用來完成更加複雜的操作

1)重複性操作

2)互動性任務

3)批量事務處理

4)服務執行狀態監控

5)定時任務執行

[root@localhost ~]# cat /etc/shells

/bin/sh

/bin/bash

/usr/bin/sh

/usr/bin/bash

[root@localhost ~]# vim hw.sh

#!/bin/bash ///第一行固定要輸入///

cd /boot/

pwdls -lh vml*

然後我們對寫好的指令碼檔案賦予執行許可權

[root@localhost ~]# chmod +x hw.sh
然後我們執行一下指令碼

[root@localhost ~]# ./hw.sh

/boot

-rwxr-xr-x. 1 root root 6.4m 7月 6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c

-rwxr-xr-x. 1 root root 6.4m 11月 9 2018 vmlinuz-3.10.0-957.el7.x86_64

[root@localhost ~]# sh hw.sh

/boot

-rwxr-xr-x. 1 root root 6.4m 7月 6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c

-rwxr-xr-x. 1 root root 6.4m 11月 9 2018 vmlinuz-3.10.0-957.el7.x86_64

[root@localhost ~]# . hw.sh

/boot

-rwxr-xr-x. 1 root root 6.4m 7月 6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c

-rwxr-xr-x. 1 root root 6.4m 11月 9 2018 vmlinuz-3.10.0-957.el7.x86_64

[root@localhost boot]# ///這邊注意,使用【.】執行,會切換bash環境

[root@localhost ~]# source hw.sh

/boot

-rwxr-xr-x. 1 root root 6.4m 7月 6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c

-rwxr-xr-x. 1 root root 6.4m 11月 9 2018 vmlinuz-3.10.0-957.el7.x86_64

[root@localhost boot]# ///這邊注意,使用【.】執行,會切換bash環境

我們現在給指令碼新增一些文字

[root@localhost ~]# vim hw.sh

#!/bin/bash

# 新增文字顯示

cd /boot

echo "當前的目錄位於"

pwdecho "其中以vml開頭的檔案包括:"

ls -lh vml*

[root@localhost ~]# ./hw.sh

當前的目錄位於

/boot

其中以vml開頭的檔案包括:

-rwxr-xr-x. 1 root root 6.4m 7月 6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c

-rwxr-xr-x. 1 root root 6.4m 11月 9 2018 vmlinuz-3.10.0-957.el7.x86_64

[root@localhost /]# grep "bash$" /etc/passwd | awk -f: ''

root /bin/bash

1)用來存放系統和使用者需要使用的特定引數(值)

2)變數名:使用固定的名稱,由系統預設或使用者定義

3)變數值:能夠根據使用者設定、系統環境的變化而變化

1)自定義變數:由使用者自己定義,修改和使用

2)特殊變數:環境變數,唯讀變數,位置變數,預定義變數

變數名=變數值

a = 1 ///【=】是賦予的意思 【==】是等於的意思///

1)雙引號:允許通過$符號引用其他變數值

2)單引號:禁止引用其他變數值,$視為普通字元

3)反撇號:命令替換,提取命令執行後的輸出結果

read【-p "提示資訊"】 變數名
編寫指令碼
[root@localhost /]# a=1

[root@localhost /]# echo $a

1[root@localhost /]# c="test $a" ///雙引號///

[root@localhost /]# echo $c

test 1

[root@localhost /]# c='text $b' ///單引號///

[root@localhost /]# echo $c

text $b

[root@localhost /]# d=`ps aux | wc -l` ///反撇號///

[root@localhost /]# echo $d

139[root@localhost /]# d=$(ps aux | wc -l) ///和反撇號一樣的作用///

[root@localhost /]# echo $d

140[root@localhost /]# read -p "請輸入乙個整數:" nub

請輸入乙個整數:111

[root@localhost /]# echo $nub

111

格式1:export 變數名

格式2:export 變數名=變數值

[root@localhost /]# export aaa=23

[root@localhost /]# echo $aaa

23[root@localhost /]# bash ///切換環境///

[root@localhost /]# echo $aaa

23

常用運算符號

[root@localhost /]# expr 2 + 3

5[root@localhost /]# a=1

[root@localhost /]# b=2

[root@localhost /]# expr $a + $b

3[root@localhost /]# c=3

[root@localhost /]# expr $b \* $c

6[root@localhost /]# expr $b / $c

0[root@localhost /]# expr $b - $c

-1

[root@localhost /]# echo $pwd

/[root@localhost /]# echo $path

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost /]#

唯讀變數用於變數值不允許被修改的情況

[root@localhost /]# name=hewei

[root@localhost /]# readonly name

[root@localhost /]# echo $name

hewei

[root@localhost /]# name=he

bash: name: 唯讀變數

[root@localhost /]# unset name

bash: unset: name: 無法反設定: 唯讀 variable

位置變數表示為$n,n為1~9之間的數字

[root@localhost /]# vim hw.sh

#!/bin/bash

#read -p "請輸入第乙個整數:" a

#read -p "請輸入第二個整數:" b

echo $1

echo $2

sum=$(expr $1 + $2)

echo "和為:$sum"

$#:命令列中位置變數的個數

$*:所有位置變數的內容

$?:上一條命令執行後返回的狀態,當返回狀態值為0時,表示執行正常,非0值表示執行異常或出錯

$0::當前執行的程序/程式名

初學者談初學者學html

這是乙個段落。解釋一下就是 html 與 html 之間的文字是描述網頁。head 與 head 之間的文字是文件的元資料。title 與 之間的文字是文件的標題。body 與 body 之間的文字是可見的頁面內容,是文章的主體部分。h1 與 h1 之間的文字被顯示為乙個大標題。p 與 p 之間的文...

C 初學者基礎語法

c 中每個符號都是英文的!每一行 都要用 號結尾 必須是英文的 宣告變數的時候的格式 型別 變數名 常量或變數名 變數名遵循的是小駝峰命名法 小駝峰命名法 首單詞的首字母要小寫其他單詞的首字元全大寫 剩下字母全小寫 這表示的是行注釋,這個注釋符號只負責注釋一行 這是個塊注釋,這個注釋符也只負責一行,...

Linux下shell(獻給初學者)

shell下的控制結構 一 if condition 執行第一段程式 else 執行第二段程式 fi fi為結束 if 條件 then 執行 elif 條件2 then 執行 else 執行 fi二 case 變數名稱 in 第乙個變數的內容 程式一 第二變數的內容 其他程式段 exit 1 esa...