日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式動(dòng)態(tài)
[導(dǎo)讀]邏輯運(yùn)算符 &&,短路并,前面成立才執(zhí)行后面的操作 ||,短路或,前面不成立才執(zhí)行后面的操作 [ 1 -ge 2 ] && echo '>=' || echo '<',1小于等于2不成立,所以執(zhí)行 echo '<'

邏輯運(yùn)算符

&&,短路并,前面成立才執(zhí)行后面的操作

||,短路或,前面不成立才執(zhí)行后面的操作

[ 1 -ge 2 ] && echo '>=' || echo '<',1小于等于2不成立,所以執(zhí)行 echo '<'

算術(shù)運(yùn)算

((c=a+b)),支持整數(shù)的四則運(yùn)算,%取模,++,--,*=,/=

c=$(expr a + b),*要寫做 \*轉(zhuǎn)義

let c=a+b,命令行,表達(dá)式中間不能有空格

c=$[a+b]

$RANDOM,隨機(jī)整數(shù)

echo 'scale=2;5/3' |bc,浮點(diǎn)計(jì)算,bash算術(shù)運(yùn)算不支持浮點(diǎn),bc支持

函數(shù)

變量FUNCTION代表當(dāng)前正在執(zhí)行的函數(shù)名

$0,腳本名,$1,第一個(gè)參數(shù),$2,第二個(gè)參數(shù),$@所有參數(shù),$#參數(shù)個(gè)數(shù)

$*是保存所有參數(shù)的字符串,而$@是數(shù)組

$*不用""包裹時(shí),for x in $*,會(huì)被擴(kuò)展為數(shù)組做迭代,"$*"仍被當(dāng)做字符串

函數(shù)調(diào)用時(shí)不加括號(hào),后面直接跟參數(shù)

func() {

echo $FUNCNAME

echo $0, $1, $2, $@, $#, $*

}

func a b c d

有function函數(shù)名稱后面可以省略()

bash默認(rèn)所有變量都是全局的,跟python剛好相反

local v,聲明這個(gè)變量是局部變量,后面就按局部變量處理

v=1

function func2 {

echo v_old, $v

local v

echo v_new, $v

}

腳本

腳本的第一行是解釋器說明,不寫使用默認(rèn)shell

腳本的參數(shù)傳遞規(guī)則和函數(shù)的參數(shù)傳遞規(guī)則一致

#! /bin/bash

echo $0, $1, $#, $@, $*

if判斷

if根據(jù)測試條件執(zhí)行對(duì)應(yīng)的表達(dá)式,如果then跟if寫在一行,要用 ; 隔開

if [ $a -lt 2 ]; then

echo '2'

elif [ $a -lt 3 ]; then

echo 3

else

echo 5

fi

test "$a" = "$b",測試a和b是否相同,變量值中間沒有空格,雙引號(hào)可以省略,=可以寫成==

[ $a != $b ],測試字符串不同,用[]代替 test,表達(dá)式之間必須有空格

[ $a \> $b ],按ascii碼比較字符串大小,\<小于

[ -n $str ],字符串非空,長度不為0

[ -z $str ],字符串空,長度為0

[ $a -eq $b ],數(shù)值判斷,-eq等,-ne不等,-gt大于等于,-ge,-lt,-le,具體man test

[ -f './f' ],當(dāng)前目錄下是否有名為f的普通文件,-d 判斷目錄,-e僅測試文件存在,不管文件是普通文件,目錄或者塊設(shè)備

[ -z $str -a -n $str2 ],str為空 并且 str2不為空

[ -z $str -o -n $str2 ],str為空 或 str2不為空

[ ! -z $str ],非 str為空,即str不為空

[[ $a == c* ]],字符串a(chǎn)是否已c開頭,[[]]中字符串大小比較直接用><,[[]]比[]擴(kuò)展性好

for循環(huán)

"$*",不會(huì)被擴(kuò)展,所以顯示一個(gè)字符串

$*,被擴(kuò)展,會(huì)按照字符串中的空格斷句

for v in "$*"; do

echo $v

done

類c循環(huán)

for((i=0; i<=$#; i++)); do

echo $i

done

while循環(huán)

a=4

b=10

while [ $a -le $b ]

do

echo $a

a=$[a+1]

done

死循環(huán),while [ 1 ]可以寫成while :

while [ 1 ]

do

# 每循環(huán)一次,參數(shù)列表向左移動(dòng)3位

shift 3

echo $1, $#

# 死循環(huán)必須設(shè)置退出條件,否則會(huì)一直循環(huán)下去

if [ $# -le 3 ]; then

break

fi

sleep 0.2

done

case

類似其他編程語言的switch

通配符如ab,ab*等,不能加引號(hào)

a=abc

case $a in

'ab')

echo 'ab';;

a*)

echo 'a*'

;;

*)

echo 'other';;

esac

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉