欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

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

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

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久