国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
shell程序設(shè)計(jì)
一、if 條件語句  
  格式: 
  if 條件表達(dá)式 
  then #當(dāng)條件為真時(shí)執(zhí)行以下語句 
  命令列表 
  else #為假時(shí)執(zhí)行以下語句 
  命令列表 
  fi 
  
  if 語句也可以嵌套使用 
  
  if 條件表達(dá)式1 
  then 
  if 條件表達(dá)式2 
  then 
  命令列表 
  else 
  if 條件表達(dá)式3 
  then 
  命令列表 
  else 
  命令列表 
  fi 
  fi 
  else 
  命令列表 
  fi 
  
  你可以進(jìn)行多層嵌套 一個(gè)if語句一定要跟一個(gè)fi 表示該層條件結(jié)束  否則會(huì)造成語法錯(cuò)誤結(jié)合前面講的 舉例如下: 
  這里先講一個(gè)條件語句中用到的命令test 表示測(cè)試test后面的條件是否為真 
  
  if test -f \"$1\" 
  then 
  lpr $1 
  else 
  if test -d \"$1\" 
  then 
  cd $1 
  lpr $1 
  else 
  echo \"$1不是文件或目錄\" 
  fi 
  fi 
  
  以上的例子還可以改成如下所示 
  
  if test -f \"$1\" 
  then 
  lpr $1 
  elif test -d \"$1\" #elif 同else if 
  then 
  (cd $1;lpr $1) 
  else 
  echo \"$1不是文件或目錄\" 
  fi 
  
  以上的例子不知您是否看懂是什么意思嗎? 
  假如我們現(xiàn)在將這個(gè)例子保存為prfile 
  chmod  x prfile 
  執(zhí)行剛才的程序 
  ./prfile aaa 
  
  這個(gè)例子是檢查你的輸入的參數(shù)是否是一個(gè)文件 如果是就打印 如果是一個(gè)目錄 先轉(zhuǎn)目錄再打印 如果即不是文件也不是目錄給出提示 
  
  二、多重條件測(cè)試語句case 
  格式: 
  case 字串 in 
  模式) 命令列表;; 
  模式) 命令列表;; 
  .... 
  esac 
  
  多重條件語句是以case 開始以esac結(jié)束 中間可以有多個(gè)條件列表 功能是測(cè)試字串和和里面的模式有沒有匹配的,有就執(zhí)行里面的命令列表 模式也可以是*號(hào) 表示任意字串,每個(gè)模式里面的最后要心;;雙引號(hào)結(jié)束,否則會(huì)發(fā)生語法錯(cuò)誤。 
  
  現(xiàn)舉例如下: 
  
  case $1 in 
  *.c) 
  cc $1 
  ;; 
  *.txt) 
  lpr $1 
  ;; 
  *) 
  echo \"未知的類型\" 
  esac 
  
  假如將以上內(nèi)容保存在文件abc中 
  
  chmod  x abc 
  執(zhí)行 ./abc a.c   將會(huì)對(duì)文件a.c進(jìn)行編譯 
  執(zhí)行 ./abc readme.txt 將會(huì)把文件通過打印機(jī) 
  假如我將以上內(nèi)容改一下,你是否會(huì)知道它的執(zhí)行結(jié)果? 
  
  case $1 in 
  *) 
  cc $1 
  ;; 
  *.txt) 
  lpr $1 
  ;; 
  *.c) 
  echo \"未知的類型\" 
  esac  
 
shell中的變量
(1)常用系統(tǒng)變量
$# :保存程序命令行參數(shù)的數(shù)目
$? :保存前一個(gè)命令的返回碼
$0 :保存程序名
$* :以("$1 $2...")的形式保存所有輸入的命令行參數(shù)
$@ :以("$1""$2"...)的形式保存所有輸入的命令行參數(shù)
$$  本程序的(進(jìn)程ID號(hào))PID 
$!  上一個(gè)命令的PID 
(2)定義變量
shell語言是非類型的解釋型語言,不象用C++/JAVA語言編程時(shí)需要事先聲明變量.給一
個(gè)變量賦值,實(shí)際上就是定義了變量.
在linux支持的所有shell中,都可以用賦值符號(hào)(=)為變量賦值.
如:
abc=9 (bash/pdksh不能在等號(hào)兩側(cè)留下空格 )
set abc = 9 (tcsh/csh)
由于shell程序的變量是無類型的,所以用戶可以使用同一個(gè)變量時(shí)而存放字符時(shí)而存放
整數(shù).
如:
name=abc (bash/pdksh)
set name = abc (tcsh)
在變量賦值之后,只需在變量前面加一個(gè)$去引用.
如:
echo $abc
4.shell程序中的條件表達(dá)式和test命令
在bash/pdksh中,命令test用于計(jì)算一個(gè)條件表達(dá)式的值.他們經(jīng)常在條件語句和循環(huán)
語句中被用來判斷某些條件是否滿足.
test命令的語法格式:
test expression
或者
[expression]
在test命令中,可以使用很多shell的內(nèi)部操作符.這些操作符介紹如下:
(1)字符串操作符 用于計(jì)算字符串表達(dá)式
test命令 | 含義
-----------------------------------------
Str1 = str2 | 當(dāng)str1與str2相同時(shí),返回True
Str1! = str2| 當(dāng)str1與str2不同時(shí),返回True
Str | 當(dāng)str不是空字符時(shí),返回True
-n str | 當(dāng)str的長度大于0時(shí),返回True
-z str | 當(dāng)str的長度是0時(shí),返回True
-----------------------------------------
(2)整數(shù)操作符具有和字符操作符類似的功能.只是他們的操作是針對(duì)整數(shù)
test表達(dá)式 | 含義
---------------------------------------------
Int1 -eq int2|當(dāng)int1等于int2時(shí),返回True
Int1 -ge int2|當(dāng)int1大于/等于int2時(shí),返回True
Int1 -le int2|當(dāng)int1小于/等于int2時(shí),返回True
Int1 -gt int2|當(dāng)int1大于int2時(shí),返回True
Int1 -ne int2|當(dāng)int1不等于int2時(shí),返回True
-----------------------------------------
(3)用于文件操作的操作符,他們能檢查:文件是否存在,文件類型等
test表達(dá)式 | 含義
------------------------------------------------
-d file |當(dāng)file是一個(gè)目錄時(shí),返回 True
-f file |當(dāng)file是一個(gè)普通文件時(shí),返回 True
-r file |當(dāng)file是一個(gè)刻讀文件時(shí),返回 True
-s file |當(dāng)file文件長度大于0時(shí),返回 True
-w file |當(dāng)file是一個(gè)可寫文件時(shí),返回 True
-x file |當(dāng)file是一個(gè)可執(zhí)行文件時(shí),返回 True
------------------------------------------------
(4)shell的邏輯操作符用于修飾/連接包含整數(shù),字符串,文件操作符的表達(dá)式
test表達(dá)式 | 含義
----------------------------------------------------------
! expr |當(dāng)expr的值是False時(shí),返回True
Expr1 -a expr2|當(dāng)expr1,expr2值同為True時(shí),返回True
Expr1 -o expr2|當(dāng)expr1,expr2的值至少有一個(gè)為True時(shí),返回True
-----------------------------------------------------------
注意:
tcsh shell 不使用test命令,但是tcsh中的表達(dá)式同樣能承擔(dān)相同的功能.tcsh
支持的表達(dá)式于C中的表達(dá)式相同.通常使用在if和while命令中.
tcsh表達(dá)式 | 含義
-------------------------------------------------------
Int1 <= int2 |當(dāng)int1小于/等于int2時(shí),返回True
Int1 >= int2 |當(dāng)int1大于/等于int2時(shí),返回True
Int1 < int2 |當(dāng)int1小于int2時(shí),返回True
Int1 > int2 |當(dāng)int1大于int2時(shí),返回True
Str1 == str2 |當(dāng)str1與str2相同時(shí),返回True
Str1 != str2 |當(dāng)str1與str2不同時(shí),返回True
-r file |當(dāng)file是一個(gè)可讀文件時(shí),返回True
-w file |當(dāng)file是一個(gè)可寫文件時(shí),返回True
-x file |當(dāng)file是一個(gè)可執(zhí)行文件時(shí),返回True
-e file |當(dāng)file存在時(shí),返回True
-o file |當(dāng)file文件的所有者是當(dāng)前用戶時(shí),返回True
-z file |當(dāng)file長度為0時(shí),返回True
-f file |當(dāng)file是一個(gè)普通文件時(shí),返回True
-d file |當(dāng)file是一個(gè)目錄時(shí),返回True
Exp1 || exp2 |當(dāng)exp1和exp2的值至少一個(gè)為True時(shí),返回True
Exp1 && exp2 |當(dāng)exp1和exp2的值同為True時(shí),返回True
! exp |當(dāng)exp的值為False時(shí),返回True

------例子------------------
if [ "$#" -eq 0 ]; then
        echo "zero"
        echo "$#"
else
        echo "not zero"
fi
--------------------------
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
shell入門基礎(chǔ)(3)
Linux shell編程筆記總結(jié)
Linux Shell編程參考大全
shell 基礎(chǔ) $(cd `dirname $0`;pwd)
Linux下VIM編譯器的使用以及shell編程基礎(chǔ)
C##
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服