国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

這篇具有很好參考價(jià)值的文章主要介紹了DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

8.7? shell 編程

8.7.1? shell 編程的基本過(guò)程

8.7.2? 實(shí)例

8.7.3? shell 程序和語(yǔ)句

8.8? 說(shuō)明性語(yǔ)句和功能性語(yǔ)句

8.8.1? 說(shuō)明性語(yǔ)句(注釋行)

8.8.2? 常用的功能性語(yǔ)句

8.9? 結(jié)構(gòu)性語(yǔ)句

8.9.1? 條件語(yǔ)句 if

8.9.2? 測(cè)試語(yǔ)句 test

8.9.3? 多路分支語(yǔ)句 case…esac

8.9.4? 循環(huán)語(yǔ)句 for…do…done

8.9.5? 循環(huán)語(yǔ)句 while…do…done

8.9.6? 循環(huán)控制語(yǔ)句 break 和 continue


8.7? shell 編程

8.7.1? shell 編程的基本過(guò)程

包含以下三步:

  1. 創(chuàng)建 shell 文件,即后綴名為 .sh 的文件
  2. 賦予 shell 文件執(zhí)行權(quán)限,即使用 chmod 命令修改權(quán)限
  3. 執(zhí)行 shell 文件,即在命令行調(diào)用 shell 文件

8.7.2? 實(shí)例

r=4,w=2,x=1
若要rwx屬性,則4+2+1=7
若要rw-屬性,則4+2=6
若要r-x屬性,則4+1=5

8.7.3? shell 程序和語(yǔ)句

shell 程序由零至多條 shell 語(yǔ)句構(gòu)成。

shell 語(yǔ)句以下三大類:

  • 說(shuō)明性語(yǔ)句:以 # 號(hào)開(kāi)始到行尾的部分,不被解釋執(zhí)行。
  • 功能性語(yǔ)句:任意的 OS 命令、shell 內(nèi)部命令、自編程序、其它 shell 程序名等。
  • 結(jié)構(gòu)性語(yǔ)句:條件測(cè)試語(yǔ)句、多路分支語(yǔ)句、循環(huán)語(yǔ)句、循環(huán)控制語(yǔ)句等。??????????? ?

8.8? 說(shuō)明性語(yǔ)句和功能性語(yǔ)句

8.8.1? 說(shuō)明性語(yǔ)句(注釋行)

注釋行可以出現(xiàn)在程序中的任何位置,既可以單獨(dú)占用一行,也可以接在執(zhí)行語(yǔ)句的后面。以 # 號(hào)開(kāi)始到所在行的行尾部分,都不被解釋執(zhí)行。例如:

#! /bin/sh 告訴OS用哪種shell來(lái)解釋執(zhí)行程序
#
# 本程序說(shuō)明
#
cmd1
cmd2    # cmd2的語(yǔ)句說(shuō)明

8.8.2? 常用的功能性語(yǔ)句

1、read 命令

read 從標(biāo)準(zhǔn)輸入讀入一行,并賦值給后面的變量。注意:執(zhí)行 read 語(yǔ)句時(shí),shell 程序?qū)?huì)等待你的一個(gè)標(biāo)準(zhǔn)輸入,而一旦回車(chē)就代表輸入結(jié)束,因此必須在一行中輸入完畢。

把讀入的數(shù)據(jù)全部賦給 var,語(yǔ)法格式如下:

read var

把讀入行中的第一個(gè)參數(shù)賦給 var1,第二個(gè)參數(shù)賦給 var2,……,語(yǔ)法格式如下

read var1 var2 var3

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

如果執(zhí)行 read 語(yǔ)句時(shí)標(biāo)準(zhǔn)輸入無(wú)數(shù)據(jù),則程序在此停留等待,直到數(shù)據(jù)的到來(lái)或被終止運(yùn)行:

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

當(dāng)變量個(gè)數(shù)和參數(shù)個(gè)數(shù)不匹配時(shí),將會(huì)把剩下的所有參數(shù)賦給最后一個(gè)變量:

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

2、expr 命令

算術(shù)運(yùn)算命令 expr 主要用于進(jìn)行簡(jiǎn)單的整數(shù)運(yùn)算,包括:加 (+)、減 (-)、乘 (\*)、整除 (/) 和求模 (%) 等操作。例如:

$ expr 12 + 5 \* 3
27

$ expr 3 - 8 / 2
-1

$ expr 25 % 4
1

$ num=9
$ sum=`expr $num \* 6`
$ echo $sum
54

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

沒(méi)有 expr 就不能進(jìn)行算術(shù)運(yùn)算:

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

8.9? 結(jié)構(gòu)性語(yǔ)句

結(jié)構(gòu)性語(yǔ)句主要根據(jù)程序的運(yùn)行狀態(tài)、輸入數(shù)據(jù)、變量的取值、控制信號(hào)以及運(yùn)行時(shí)間等因素來(lái)控制程序的運(yùn)行流程。主要包括以下幾類語(yǔ)句:

  • 條件測(cè)試語(yǔ)句(兩路分支)
  • 多路分支語(yǔ)句
  • 循環(huán)語(yǔ)句
  • 循環(huán)控制語(yǔ)句

無(wú)任何結(jié)構(gòu)性語(yǔ)句的shell腳本程序是一種特例。

8.9.1? 條件語(yǔ)句 if

語(yǔ)法結(jié)構(gòu):

if 表達(dá)式
then 命令表1
else 命令表2
fi     

創(chuàng)建 test.sh 文件:

if [ -f file1 ]
then
    echo "文件file1存在"
else
    echo "文件file1不存在"
fi
  • -f:如果 filename為常規(guī)文件,則為真
  • -d:如果 filename為目錄,則為真
  • [ ]:和表達(dá)式兩側(cè)必須要有一個(gè)空格

執(zhí)行 test.sh 文件:

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

初始由于沒(méi)有為其賦予權(quán)限,因此執(zhí)行失敗,于是我們使用 chmod 命令修改其權(quán)限。

8.9.2? 測(cè)試語(yǔ)句 test

test 語(yǔ)句可測(cè)試的三種對(duì)象:

  • 字符串
  • 整數(shù)
  • 文件屬性

test 命令測(cè)試的條件成立時(shí),命令返回值為真(0),否則返回值為假(非 0)

① 用法一

name="anyujin"
test $name == $1
echo $?

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

② 用法二

if test -f file1
then
    echo "文件file1存在"
else
    echo "文件file1不存在"
fi

通常把 test 簡(jiǎn)寫(xiě)為 [? ] :

if [ -f file1 ]

即用方括號(hào)替代了 test 語(yǔ)句,注意方括號(hào)和表達(dá)式之間至少要有一個(gè)空格。

8.9.3? 多路分支語(yǔ)句 case…esac

case 字符串變量 in
    模式1)
        命令表1
        ;;
    模式2)
        命令表2
        ;;
    ...
    *)
        命令表n
        ;;
esac

檢查用戶輸入的文件名:

# 要求輸入一個(gè)命令行參數(shù)
if [ $# -ne 1 ]
then
	echo "One argument must be declared."
	exit
fi

# 檢查用戶輸入的文件
case $1 in
    file1)
        echo "User selects file1."
        ;;
    file2)
        echo "User selects file2."
        ;;
    *)
        echo "You must select either file1 or file2!"
        ;;
esac

執(zhí)行上述 shell 程序:

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

8.9.4? 循環(huán)語(yǔ)句 for…do…done

當(dāng)循環(huán)次數(shù)已知或確定時(shí),使用 for 循環(huán)語(yǔ)句來(lái)多次執(zhí)行一條或一組命令。循環(huán)體由語(yǔ)句括號(hào) do 和 done 來(lái)限定。格式為:

for 變量名 in 單詞表
do
    命令表
done

① 用法一

for num in "1" "3" "5"
do
    echo "$num"
done

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

② 用法二

for num in {1..5}
do
    echo "$num"
done

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

③ 用法三

# 判斷并創(chuàng)建目錄backup
if  [ ! -d $HOME/backup ]
then
	mkdir $HOME/backup
fi

# 修改工作路徑
cd /home/envoutante/桌面

# 用flist存放當(dāng)前目錄的所有文件
flist=`ls`

# “圖片18.png”
num=18

# 循環(huán)flist中的所有文件
for file in $flist
do
    # 修改文件名
    mv ${file} 圖片${num}.png
    file="圖片${num}.png"

    # 復(fù)制文件到backup
    cp $file $HOME/backup
    echo "$file copied"

    # 計(jì)數(shù)器加一
    num=`expr $num + 1`
done

echo '***Back up completed***'

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

8.9.5? 循環(huán)語(yǔ)句 while…do…done

語(yǔ)法結(jié)構(gòu)為:

while 命令或表達(dá)式
do
    命令表
done

創(chuàng)建文件程序,參數(shù) 1 為文件名開(kāi)頭,參數(shù) 2 為創(chuàng)建個(gè)數(shù):

DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句

8.9.6? 循環(huán)控制語(yǔ)句 break 和 continue

break 語(yǔ)句從包含該語(yǔ)句的最近一層循環(huán)中跳出一層,break? n 則跳出 n 層;

continue 語(yǔ)句則馬上轉(zhuǎn)到最近一層循環(huán)語(yǔ)句的下一輪循環(huán)上,continue n 則轉(zhuǎn)到最近 n 層循環(huán)語(yǔ)句的下一輪循環(huán)上。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-492818.html

到了這里,關(guān)于DJ8-4 shell 語(yǔ)句的分類、shell 的結(jié)構(gòu)性語(yǔ)句的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Java面試題】設(shè)計(jì)模式之七種結(jié)構(gòu)性模式——代理模式、適配器模式、橋接模式、裝飾模式、外觀模式、享元模式、組合模式

    目錄 一、代理模式 二、適配器模式 三、橋接模式 四、裝飾模式 五、外觀模式 六、享元模式 七、組合模式 概念: 代理模式是為其他對(duì)象提供一種以代理控制對(duì)這個(gè)對(duì)象的訪問(wèn)。在某些情況下,一個(gè)對(duì)象不適合或者不能直接引用另一個(gè)對(duì)象,而代理對(duì)象可以在客戶端和目標(biāo)對(duì)

    2023年04月09日
    瀏覽(26)
  • DJ8-2 主存儲(chǔ)器的組織

    DJ8-2 主存儲(chǔ)器的組織

    目錄 一、主存容量的擴(kuò)展 1. 位擴(kuò)展 2. 字?jǐn)U展(編址空間擴(kuò)展) 3. 字和位同時(shí)擴(kuò)展 - 第一題 - 第二題 - 第三題 - 第四題 二、數(shù)據(jù)校驗(yàn) —— 奇偶校驗(yàn) 1. 奇校驗(yàn) 2. 偶校驗(yàn) 如何使用存儲(chǔ)芯片組成一個(gè)存儲(chǔ)器? 確定設(shè)計(jì)容量:多大設(shè)計(jì)容量 芯片的選用:多大容量,位數(shù),多少片

    2024年02月12日
    瀏覽(14)
  • 【Linux | Shell】結(jié)構(gòu)化命令 - if 語(yǔ)句

    【Linux | Shell】結(jié)構(gòu)化命令 - if 語(yǔ)句

    前面文章介紹了一些Shell腳本的基礎(chǔ)知識(shí),也了解了怎樣構(gòu)建一個(gè)shell腳本文件,讓shell腳本執(zhí)行一些基礎(chǔ)的指令,但都是從上到下依次執(zhí)行的。在實(shí)際shell編程中,會(huì)遇到很多情況需要判斷條件,按不同條件去執(zhí)行不同的命令。本文注意介紹shell編程中的一些結(jié)構(gòu)化命令條件語(yǔ)

    2024年02月16日
    瀏覽(34)
  • Linux:概述 、安裝 、文件與目錄結(jié)構(gòu) 、vim編輯器 、網(wǎng)絡(luò)配置 、遠(yuǎn)程登錄 、系統(tǒng)管理 、基礎(chǔ)命令 、軟件包管理 、克隆虛擬機(jī) 、shell編程

    Linux:概述 、安裝 、文件與目錄結(jié)構(gòu) 、vim編輯器 、網(wǎng)絡(luò)配置 、遠(yuǎn)程登錄 、系統(tǒng)管理 、基礎(chǔ)命令 、軟件包管理 、克隆虛擬機(jī) 、shell編程

    2.1.1、Linux是什么? Linux是一個(gè)操作系統(tǒng)(OS) 所謂的操作系統(tǒng)就是直接用來(lái)操作計(jì)算機(jī)底層硬件的軟件。 2.1.2、Linux的出現(xiàn) 官網(wǎng): https://www.centos.org/ 進(jìn)入官網(wǎng)進(jìn)行下載 有很多的鏡像,以阿里云的為例: 3.3.1、下載 官網(wǎng): https://www.vmware.com/ 這是下載的企業(yè)版,30天試用期,可

    2024年02月05日
    瀏覽(61)
  • shell腳本----條件判斷語(yǔ)句

    shell腳本----條件判斷語(yǔ)句

    文件測(cè)試 test命令 測(cè)試表達(dá)是是否成立,若成立則返回0,否則返回其他的數(shù) 用法一:test 條件表達(dá)式 用法二:[ 條件表達(dá)式 ] 選項(xiàng) 含義 -e 測(cè)試目錄或者文件是否存在 -d 測(cè)試是否為目錄 -f 測(cè)試是否為文件 -r 測(cè)試當(dāng)前用戶是否有讀的權(quán)限 -w 測(cè)試當(dāng)前用戶是否有寫(xiě)的權(quán)限 -x 測(cè)

    2024年02月01日
    瀏覽(41)
  • 【Shell編程之條件語(yǔ)句】

    【Shell編程之條件語(yǔ)句】

    測(cè)試表達(dá)式是否成立,若成立返回0,否則返回其他數(shù)值 2.1、常用的測(cè)試操作符 命令 解釋 -d 測(cè)試是否為目錄(Directory) -e 測(cè)試目錄或文件是否存在(Exist) -f 測(cè)試是否為文件(File) -r 測(cè)試當(dāng)前用戶是否有權(quán)限讀取 (Read) -w 測(cè)試當(dāng)前用戶是否有權(quán)限寫(xiě)入 (Write) -x 測(cè)試當(dāng)前用戶是否有權(quán)

    2023年04月27日
    瀏覽(26)
  • Shell編程之條件語(yǔ)句

    Shell編程之條件語(yǔ)句

    在簡(jiǎn)單的Shell腳本程序中,各語(yǔ)句將 按先后順序依次執(zhí)行 ,從而實(shí)現(xiàn)批處理的自動(dòng)化過(guò)程。然而,單一的順序結(jié)構(gòu)使得腳本過(guò)于機(jī)械化,不夠智能,難以處理更加靈活的系統(tǒng)任務(wù)。 本章主要講了 條件測(cè)試,包括文件測(cè)試、整數(shù)值比較、字符串比較和邏輯測(cè)試 。以及如何使用

    2024年02月01日
    瀏覽(18)
  • shell腳本之循環(huán)語(yǔ)句

    shell腳本之循環(huán)語(yǔ)句

    將某代碼段重復(fù)運(yùn)行多次,通常有進(jìn)入循環(huán)的條件和退出循環(huán)的條件 一般知道循環(huán)次數(shù)使用for循環(huán) 不知道循環(huán)次數(shù),知道停止條件時(shí)一般使用while break跳出單個(gè)循環(huán)后面加數(shù)字2則代表跳出兩層循環(huán) continue終止某次循環(huán)中的命令,但是不會(huì)完全終止命令

    2024年02月12日
    瀏覽(23)
  • 【shell腳本】條件語(yǔ)句

    【shell腳本】條件語(yǔ)句

    測(cè)試表達(dá)試是否成立,若成立返回0,否則返回其它數(shù)值 符號(hào) 作用 -d 測(cè)試是否為目錄 -e 測(cè)試是否為目錄或文件 -f 測(cè)試是否為文件 -r 測(cè)試當(dāng)前用戶是否有讀取權(quán)限 -w 測(cè)試當(dāng)前用戶是否有寫(xiě)入權(quán)限 -x 測(cè)試當(dāng)前用戶是否有執(zhí)行權(quán)限 1.1.2整數(shù)比較常用的操作符 英文符號(hào) 算數(shù)符號(hào)

    2024年02月02日
    瀏覽(20)
  • 3.7 Linux shell腳本編程(分支語(yǔ)句、循環(huán)語(yǔ)句)

    3.7 Linux shell腳本編程(分支語(yǔ)句、循環(huán)語(yǔ)句)

    目錄 分支語(yǔ)句(對(duì)標(biāo)C語(yǔ)言中的if) 多路分支語(yǔ)句(對(duì)標(biāo)C語(yǔ)言中的swich case) 分支語(yǔ)句(對(duì)標(biāo)C語(yǔ)言中的if) 語(yǔ)法結(jié)構(gòu): ? ? ? ? ?if ? ?表達(dá)式 ? ? ? ? ??? ??? ?then ?命令表 ? ? ? ? ?fi ? ? 如果表達(dá)式為真, 則執(zhí)行命令表中的命令; 否則退出if語(yǔ)句, 即執(zhí)行fi后面的語(yǔ)句。

    2024年02月02日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包