一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

常用語法 -b file -c file -f file-d file -x file

 ala咪s 2017-04-06

一、test條件判斷

1,test文件測試:

-b file     若文件存在且是一個塊特殊文件,則為真

-c file     若文件存在且是一個字符特殊文件,則為真

-d file     若文件存在且是一個目錄,則為真

-e file     若文件存在,則為真

-f file     若文件存在且為一個規(guī)則文件,則為真

-g file     若文件存在且設(shè)置了SGID位的值,則為真

-h file     若文件存在且為一個符號鏈接,則為真

-k file     若文件存在且設(shè)置了“sticky”位的值,則為真

-p file     若文件存在且為一已命名管道,則為真

-s file     若文件存在且其大小大于零,則為真

-u file     若文件存在且設(shè)置了SUID位的值,則為真

-r file     若文件存在且可讀,則為真

-w file     若文件存在且可寫,則為真

-x file     若文件存在且可執(zhí)行,則為真

-o file     若文件存在且被有效用戶ID所擁有,則為真

2,test字符串比較

-z string         string長度為0,則為真

-n string         string長度不為0,則為真

string1 = string2    若兩個字符串相等,則為真

string1 != string2   若兩個字符串不相等,則為真

3test命令的數(shù)字比較操作符

int1 -eq int2      int1等于int2,則為真

int1 –ne int2      int1不等于int2,則為真

int1 –lt int2      int1小于int2,則為真

int1 –le int2      int1小于等于int2,則為真

int1 –gt int2      int1大于int2,則為真

int1 –ge int2      int1大于等于int2,則為真

4test復(fù)合表達式

! expr                     expr為假則復(fù)合表達式為真。expr可以是任何有效的測試表達式

expr1 -a expr2           expr1expr2都為真,則為真

expr1 -o expr2           expr1expr2有一個為真,則為真

二、shell里的特殊變量

# sh /usr/local/bkeep/shell.sh 001 002

I'm $0 is:/usr/local/bkeep/shell.sh        //正在被執(zhí)行腳本的名字;`basename $0`

I'm $1 is:001                //$1接收到的參數(shù)

I'm $2 is:002                //$2接收到的參數(shù)

I'm $# is:2                   //總共接收到的參數(shù)個數(shù)

I'm $* is:001 002         //把接收到的參數(shù)全部打印出來

I'm $@ is:001 002        //同上

I'm $? is:0                   //上一個腳本的退出狀態(tài)“0代表正常;“1非正常退出

I'm $$ is:24137            //當(dāng)前執(zhí)行腳本的進程ID

I'm $! is:                     //前一個后臺進程的id

三:其他

1.返回值 #?

cd dir

echo "$?"

如果dir存在,則返回0,不存在則返回1. 其他函數(shù)的命令也是一樣,比如diff,等等。

每個命令都會返回一個 exit 狀態(tài)(有時候也叫return 狀態(tài)).成功返回0,如果返回一個非0 值,通
常情況下都會被認為是一個錯誤碼.一個編寫良好的UNIX 命令,程序,和工具都會返回一個0 作為
退出碼來表示成功,雖然偶爾也會有例外.

同樣的,腳本中的函數(shù)和腳本本身都會返回退出狀態(tài).在腳本或者是腳本函數(shù)中執(zhí)行的最后的命
令會決定退出狀態(tài).在腳本中,exit nnn 命令將會把nnn 退出碼傳遞給shell

$?讀取最后執(zhí)行命令的退出碼.函數(shù)返回后,$?給出函數(shù)最后執(zhí)行的那條命令的退出碼.這種給
函數(shù)返回值的方法是 Bash 的方法.對于腳本來說也一樣.總之,一般情況下,0 為成功,非0 失敗W

 2 .

$ 變量替換操作符
只有在變量被聲明,賦值,unset 或exported 或者是在變量代表一個signal 的時候,
變量才會是以本來的面目出現(xiàn)在腳本里.變量在被賦值的時候,可能需要使用"=",
read狀態(tài)或者是在循環(huán)的頭部.
在""中還是會發(fā)生變量替換,這被叫做部分引用,或叫弱引用.而在''中就不會發(fā)生變
量替換,這叫做全引用,也叫強引用.這兩個符合在同一個按鍵上。具體見第5 章的討論.
注意:$var 與${var}的區(qū)別,不加{},在某些上下文將引起錯誤,為了安全,使用2.

還有一個按鍵在左上角,即按鍵1的左邊。此按鍵有下面的作用。即將ls -l的結(jié)果傳給a

17 a=`ls -l` # 把ls -l 的結(jié)果給a
18 echo $a # 別忘了,這么引用的話,ls 的結(jié)果中的所有空白部分都沒了(包括換行)
19 echo
20 echo "$a" # 這么引用就正常了,保留了空白

 或者直接

echo "$(ls -l)" 也可以取出目錄

3.

在read 命令狀態(tài)中
30 echo -n "Enter \"a\" "
31 read a
32 echo "The value of \"a\" is now $a."
33
34 echo
35

這個方法可以接受鍵盤輸入到a中。

 4.

在一個雙引號中直接使用變量名,一般都是沒有問題的.它阻止了所有在引號中的特殊字符的
重新解釋--包括變量名[2]--但是$,`和\除外.[3]保留$,作為特殊字符的意義,是為了能夠在雙
引號中也能夠正常地引用變量("$var").這樣在""中可以使用變量所表達的值(Example 4-1).
使用""來防止單詞分割.[4]如果在參數(shù)列表中使用雙引號,將使得雙引號中的參數(shù)作為一個參
數(shù).即使雙引號中的字符串包含多個單詞(也就是包含空白部分),也不會變?yōu)槎鄠€參數(shù),如:
1 variable1="a variable containing five words"
2 COMMAND This is $variable1 # COMMAND 將以7 個參數(shù)來執(zhí)行
3 # "This" "is" "a" "variable" "containing" "five" "words"
4
5 COMMAND "This is $variable1" # COMMAND 將以1 個參數(shù)來執(zhí)行

5.賦值的方法

--------------------------------------------------------

a:C風(fēng)格的賦值
7 (( a = 23 )) # 給一個變量賦值,從"="兩邊的空格就能看出這是c 風(fēng)格的處理.
8 echo "a (initial value) = $a"
9
10 (( a++ )) # 變量'a'后加1,C 風(fēng)格.
11 echo "a (after a++) = $a"
12
13 (( a-- )) # 變量'a'后減1,C 風(fēng)格.
14 echo "a (after a--) = $a"

 ------------------------------------------------

37(( t = a<45?7:11 )) # C 風(fēng)格的3 元操作.
38 echo "If a < 45, then t = 7, else t = 11."
39 echo "t = $t " # Yes!

---------------------------------------------------

18 LIMIT=10
19
20 for ((a=1; a <= LIMIT ; a++)) # Double parentheses, and "LIMIT" with no "$".
20 for ((a=1; a <= LIMIT ; a++)) # 雙圓括號, 并且"LIMIT"變量前邊沒有 "$".
21 do
22 echo -n "$a "
23 done

--------------------------------------------

b:let

4 a=2334 # 整型
5 let "a += 1"   #不加雙引號也可以
6 echo "a = $a "  # a = 2335

--------------------------------------------------------------------

c:取變量

5 a=2334

6 a=$(($a+1))

7 echo "$a"   #a=2335

 ------------------------------------------

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    在线中文字幕亚洲欧美一区| 粉嫩一区二区三区粉嫩视频| 好吊视频有精品永久免费| 欧美一区日韩二区亚洲三区| 久久福利视频这里有精品| 中文字幕无线码一区欧美| 欧美激情一区二区亚洲专区| 午夜福利直播在线视频| 欧美日韩国产精品第五页| av在线免费观看一区二区三区| 老司机精品福利视频在线播放| 国产又粗又长又大的视频| 麻豆一区二区三区精品视频| 亚洲一区二区精品国产av| 性感少妇无套内射在线视频| 一级欧美一级欧美在线播| 国产精品久久熟女吞精| 亚洲熟女精品一区二区成人| 色婷婷视频免费在线观看| 久久午夜福利精品日韩| 久久91精品国产亚洲| 亚洲精品伦理熟女国产一区二区| 国产精品午夜小视频观看| 国产美女网红精品演绎| 91在线爽的少妇嗷嗷叫| 日本高清加勒比免费在线| 99免费人成看国产片| 在线日本不卡一区二区| 在线免费视频你懂的观看| 国产亚洲精品久久久优势| 加勒比日本欧美在线观看| 精品国自产拍天天青青草原| 老熟妇乱视频一区二区| 麻豆亚州无矿码专区视频| 欧美大粗爽一区二区三区 | 福利视频一区二区三区| 都市激情小说在线一区二区三区| 日本少妇三级三级三级| 日韩成人高清免费在线| 欧美精品女同一区二区| 国产一级一片内射视频在线|