真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux基礎(chǔ)部分的學(xué)習(xí)(4)-shell語法學(xué)習(xí)2-創(chuàng)新互聯(lián)

文章目錄
  • 前言
  • 一、printf命令
  • 二、test命令與判斷符號[]
    • 1.邏輯運算符&&和||
    • 2.test命令
    • 3.文件類型判斷
    • 4.文件權(quán)限判斷
    • 5.整數(shù)間的比較
    • 6.字符串比較
    • 7.多重條件判定
    • 8.判斷符號[]
  • 三、判斷語句
    • 單層if
    • 單層if-else
    • 多層if-elif-elif-else
    • case…esac形式
  • 四、循環(huán)語句
    • 1.命令格式1:
    • 2.,命令格式2
    • 3.while…do…done循環(huán)
    • 4.until…do…done循環(huán)
    • 5.break命令
    • 6.continue命令
  • 五、函數(shù)
  • 六-exit命令
  • 七--文件重定向
  • 八 --引入外部腳本

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出西安免費做網(wǎng)站回饋大家。
前言

古之立大事者,不惟有超世之才,亦必有堅忍不拔之志。——蘇軾


一、printf命令
printf命令用于格式化輸出,類似于C/C++中的printf函數(shù)。

printf "%10d.\n" 123  # 占10位,右對齊
printf "%-10.2f.\n" 123.123321  # 占10位,保留2位小數(shù),左對齊
printf "My name is %s\n" "yxc"  # 格式化輸出字符串
printf "%d * %d = %d\n"  2 3 `expr 2 \* 3` # 表達(dá)式的值作為參數(shù)

在這里插入圖片描述

二、test命令與判斷符號[] 1.邏輯運算符&&和||
  • && 表示與,|| 表示或
  • 二者具有短路原則: expr1 && expr2:當(dāng)expr1為假時,直接忽略expr2 expr1 ||expr2:當(dāng)expr1為真時,直接忽略expr2
  • 表達(dá)式的exit code為0,表示真;為非零,表示假。(與C/C++中的定義相反)
2.test命令
test命令用于判斷文件類型,以及對變量做比較。

test命令用exit code返回結(jié)果,而不是使用stdout。0表示真,非0表示假。


acs@9e0ebfcd82d7:~$ ls  # 列出當(dāng)前目錄下的所有文件
homework  output.txt  test.sh  tmp
acs@9e0ebfcd82d7:~$ test -e test.sh && echo "exist" || echo "Not exist"
exist  # test.sh 文件存在
acs@9e0ebfcd82d7:~$ test -e test2.sh && echo "exist" || echo "Not exist"
Not exist  # testh2.sh 文件不存在

代碼如下(示例):

test 2 -lt 3  # 為真,返回值為0
echo $?  # 輸出上個命令的返回值,輸出0

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

3.文件類型判斷
命令格式:
test -e filename  # 判斷文件是否存在

在這里插入圖片描述

4.文件權(quán)限判斷
test -r filename  # 判斷文件是否可讀

在這里插入圖片描述

5.整數(shù)間的比較
test $a -eq $b  # a是否等于b

在這里插入圖片描述

6.字符串比較

在這里插入圖片描述

7.多重條件判定
test -r filename -a -x filename

在這里插入圖片描述

8.判斷符號[]
[]與test用法幾乎一模一樣,更常用于if語句中。另外[[]]是[]的加強版,支持的特性更多。

[ 2 -lt 3 ]  # 為真,返回值為0
echo $?  # 輸出上個命令的返回值,輸出0

注意
	[]內(nèi)的每一項都要用空格隔開
	中括號內(nèi)的變量,最好用雙引號括起來
	中括號內(nèi)的常數(shù),最好用單或雙引號括起來
三、判斷語句
if…then形式
類似于C/C++中的if-else語句。
單層if
if condition
then
   語句1
   語句2
  ...
fi

示例:
在這里插入圖片描述
在這里插入圖片描述

單層if-else
if condition
then
   語句1
    語句2
   ...
else
    語句1
    語句2
   ...
fi

示例:
在這里插入圖片描述
在這里插入圖片描述

多層if-elif-elif-else
if condition
then
    語句1
    語句2
    ...
elif condition
then
    語句1
    語句2
    ...
elif condition
then
    語句1
    語句2
else
    語句1
    語句2
    ...
fi

示例
在這里插入圖片描述
在這里插入圖片描述

case…esac形式
case $變量名稱 in
值1)
    語句1
    語句2
    ...
    ;;  # 類似于C/C++中的break
值2)
    語句1
    語句2
    ...
    ;;
*)  # 類似于C/C++中的default
    語句1
    語句2
    ...
    ;;
esac

示例
在這里插入圖片描述
在這里插入圖片描述

四、循環(huán)語句 1.命令格式1:
for var in val1 val2 val3
do
    語句1
    語句2
    ...
done

示例
在這里插入圖片描述

在這里插入圖片描述

示例二
輸出當(dāng)前路徑下的所有文件名,每個文件名一行:

for file in `ls`
do
    echo $file
done

在這里插入圖片描述

示例三(輸出1-10,10個數(shù))

for i in $(seq 1 10)
do
    echo $i
done

在這里插入圖片描述

示例四(使用{1…10} 或者 {a…z})

for i in {a..n}
do
    echo $i
done

在這里插入圖片描述

2.,命令格式2
for ((expressi**加粗樣式**on; condition; expression))
do
    語句1
    語句2
done

示例
在這里插入圖片描述
在這里插入圖片描述

3.while…do…done循環(huán)
while condition
do
    語句1
    語句2
    ...
done

示例

4.until…do…done循環(huán)
當(dāng)條件為真時結(jié)束。
until condition
do
    語句1
    語句2
    ...
done

在這里插入圖片描述
在這里插入圖片描述

5.break命令
跳出當(dāng)前一層循環(huán),注意與C/C++不同的是:break不能跳出case語句。
while read name
do
    for ((i=1;i<=10;i++))
    do
        case $i in
            8)
                break
                ;;
            *)
                echo $i
                ;;
        esac
    done
done

在這里插入圖片描述

6.continue命令
for ((i=1;i<=10;i++))
do
    if [ `expr $i % 2` -eq 0 ]
    then
        continue
    fi
    echo $i
done

在這里插入圖片描述

五、函數(shù)
bash中的函數(shù)類似于C/C++中的函數(shù),但return的返回值與C/C++不同,返回的是exit code,取值為0-255,0表示正常結(jié)束。

如果想獲取函數(shù)的輸出結(jié)果,可以通過echo輸出到stdout中,然后通過$(function_name)來獲取stdout中的結(jié)果。

函數(shù)的return值可以通過$?來獲取。
[function] func_name() {# function關(guān)鍵字可以省略
    語句1
    語句2
    ...
}
func() {name=yxc
    echo "Hello $name"
}

func
func() {name=yxc
    echo "Hello $name"

    return 123
}

output=$(func)
ret=$?

echo "output = $output"
echo "return = $ret"
六-exit命令
exit命令用來退出當(dāng)前shell進程,并返回一個退出狀態(tài);使用$?可以接收這個退出狀態(tài)。

exit命令可以接受一個整數(shù)值作為參數(shù),代表退出狀態(tài)。如果不指定,默認(rèn)狀態(tài)值是 0。

exit退出狀態(tài)只能是一個介于 0~255 之間的整數(shù),其中只有 0 表示成功,其它值都表示失敗。
#! /bin/bash

if [ $# -ne 1 ]  # 如果傳入?yún)?shù)個數(shù)等于1,則正常退出;否則非正常退出。
then
    echo "arguments not valid"
    exit 1
else
    echo "arguments valid"
    exit 0
fi
七–文件重定向

每個進程默認(rèn)打開3個文件描述符:

  • stdin標(biāo)準(zhǔn)輸入,從命令行讀取數(shù)據(jù),文件描述符為0
  • stdout標(biāo)準(zhǔn)輸出,向命令行輸出數(shù)據(jù),文件描述符為1
  • stderr標(biāo)準(zhǔn)錯誤輸出,向命令行輸出數(shù)據(jù),文件描述符為2

可以用文件重定向?qū)⑦@三個文件重定向到其他文件中

命令	說明
command >file	將stdout重定向到file中
command< file	將stdin重定向到file中
command >>file	將stdout以追加方式重定向到file中
command n>file	將文件描述符n重定向到file中
command n>>file	將文件描述符n以追加方式重定向到file中

示例

echo -e "Hello \c">output.txt  # 將stdout重定向到output.txt中
echo "World">>output.txt  # 將字符串追加到output.txt中
read str< output.txt  # 從output.txt中讀取字符串
echo $str  # 輸出結(jié)果:Hello World``
八 --引入外部腳本

語法格式

. filename  # 注意點和文件名之間有一個空格

或

source filename
示例
創(chuàng)建test1.sh,內(nèi)容為:

#! /bin/bash

name=yxc  # 定義變量name
然后創(chuàng)建test2.sh,內(nèi)容為:

#! /bin/bash

source test1.sh # 或 . test1.sh

echo My name is: $name  # 可以使用test1.sh中的變量
執(zhí)行命令:

acs@9e0ebfcd82d7:~$ chmod +x test2.sh 
acs@9e0ebfcd82d7:~$ ./test2.sh 
My name is: yxc

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


文章標(biāo)題:Linux基礎(chǔ)部分的學(xué)習(xí)(4)-shell語法學(xué)習(xí)2-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://weahome.cn/article/digidi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部