小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Linux下的shell編程入門 (2)

 惡之一眉 2011-10-19

Linux下的shell編程入門 (2)

下面我們利用內(nèi)部變量和位置參數(shù)編寫一個(gè)名為del的簡(jiǎn)單刪除程序:

  #name: del

  #author: liangnian

  #this program to compress a file to the dustbin

  if test $# -eq 0

  then

  echo “Please specify a file!”

  else

  gzip $1 //先對(duì)文件進(jìn)行壓縮

  mv $1.gz $HOME/dustbin //移動(dòng)到回收站

  echo “File $1 is deleted !”

  fi

  三、變量表達(dá)式

  在上面我們編寫的小程序中我們用到了一個(gè)關(guān)鍵字test,其實(shí)它是shell程序中的一個(gè)表達(dá)式?D?D比較(test)。通過和shell提供的if等條件語(yǔ)句(后面我們會(huì)介紹)相結(jié)合我們可以方便的完判斷。

  其用法如下:

  test 表達(dá)式

  表達(dá)式所代表的操作符有字符串操作符、數(shù)字操作符、邏輯操作符以及文件操作符。其中文件操作符是一種shell獨(dú)特的操作符,因?yàn)閟hell里的變量都是字符串,為了達(dá)到對(duì)文件進(jìn)行操作的目的,于是才提供了這樣的一種操作符。

  1、 字符串比較

  作用:測(cè)試字符串是否相等、長(zhǎng)度是否為零,字符串是否為NULL(注:bash區(qū)分零長(zhǎng)度字符串和空字符串)

  常用的字符穿操作符有:

  = 比較兩個(gè)字符串是否相同,同則為“是”!= 比較兩個(gè)字符串是否相同,不同則為“是”

  -n 比較字符串長(zhǎng)度是否大于零,如果大于零則為“是”

  -z 比較字符串的穿度是否等于零,如果等于則為“是”

  2、 數(shù)字比較

  這里區(qū)別于其他編程語(yǔ)言,test語(yǔ)句不使用>?類似的符號(hào)來(lái)表達(dá)大小的比較,而是用整數(shù)式來(lái)表示這些。

  -eq 相等

  -ge 大于等于

  -le 小于等于

  -ne 不等于

  -gt 大于

  -lt 小于

  3、 邏輯操作! 反:與一個(gè)邏輯值相反的邏輯值

  -a 與(and):兩個(gè)邏輯值為“是”返回值才為“是”,反之為“否”

  -o 或(or):兩個(gè)邏輯值有一個(gè)為“是”,返回值就為“是”

  4、 文件操作

  文件測(cè)試表達(dá)式通常是為了測(cè)試文件的信息,一般由腳本來(lái)決定文件是否應(yīng)該備份、復(fù)制或刪除。由于test關(guān)于文件的操作符有很多,我們只列舉一些常用的。

  -d 對(duì)象存在且為目錄返回值為“是”

  -f 對(duì)象存在且為文件返回值為“是”

  -L 對(duì)象存在且為符號(hào)連接返回值為“是”

  -r 對(duì)象存在且可讀則返回值為“是”

  -s 對(duì)象存在且長(zhǎng)度非零則返回值為“是”

  -w 對(duì)象存在且可寫則返回值為“是”

  -x 對(duì)象存在且可執(zhí)行則返回值為“是”

  file1 ?Cnt(-ot) file2 文件1比文件2新(舊)

  四、循環(huán)結(jié)構(gòu)語(yǔ)句

  shell常見的循環(huán)語(yǔ)句有for循環(huán)、while循環(huán)、until循環(huán)

  for 循環(huán)

  語(yǔ)法:for 變量 in 列表

  do

  操作

  done

  注:變量是要在循環(huán)內(nèi)部用來(lái)指代當(dāng)前所指代的列表中的那個(gè)對(duì)象的。

  列表是在for 循環(huán)的內(nèi)部要操作的對(duì)象,可以是字符串也可以是文件,如果是文件則為文件名。

  例:刪除垃圾箱中的所有.gz文件

  #delete all file with extension of “gz” in the dustbin

  for I in $HOME/dustbin/*.gz

  do

  rm ?Cf $i

  echo “$i has been deleted!”

  done

  執(zhí)行結(jié)果如下:

  [beichen@localhost bin]$.f_rmgz

  /home/beichen/dustbin/nessus-4.0.0.2.tar.gz has been deleted!

  /home/beichen/dustbin/gftp-2.2.1.tar.gz has been deleted!


來(lái)源:Chinaitlab  

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多