日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > linux學習之shell腳本 ------- 輸入與輸出

linux學習之shell腳本 ------- 輸入與輸出

來源:程序員人生   發布時間:2015-03-02 08:42:46 閱讀次數:3557次
概述

顧名思義,通俗來說異常就是指,那些產生在我們本來斟酌和設定的計劃以外的意外情況。

生活中總是會存在各種突發情況,如果沒有做好準備,就讓人措手不及。

你和朋友約好了明天1起去登山,半道上忽然烏云蔽日,下起了磅礴大雨。這就是所謂的異常情況。

你1下子傻眼了,然后看見朋友淡定的從背包里取出1件雨衣穿上,淫笑著看著你。這就是對異常的處理。

 

對1個OO程序猿來說,所做的工作就是:將需要處理的現實生活中的復雜問題,抽象出來編寫成為程序。

既然現實生活中總是存在著各種突然的異常情況,那末對應其抽象出的代碼,自然也是存在這樣的風險的。

所以常常說:要編寫1個完善的程序其實不只是簡簡單單的把功能實現,還要讓程序具有處理在運行中可能出現的各種意外情況的能力。

這就是所謂的異常的使用。

 

體系


這就是Java當中異常體系的結構構成,從圖中我們可以提取到的信息就是:

1、Java中定義的所有異常類都是內置類Throwable的子類。

 

2、Java中的異常通常被分為兩大類:Error和Exception:

  • 那末顧名思義,Error代表毛病,Exception代表異常;
  • Error用以指明與運行環境相干的毛病,JVM沒法從此類毛病中恢復,此類異常無需我們處理;
  • Exception代表著可以被我們所處理的異常情況,我們需要掌握和使用的,正是該類型。

3、Exception最多見的兩種異常類型分別是:

  • IOException:主要是用以處理操作數據流時可能會出現的各種異常情況。
  • RuntimeException:指產生在程序運行時期的異常,如數組越界,入參不滿足規范等情況引發的程序異常。

 

工欲善其事,必先利其器

要理解Java中的異常使用,首先要明白幾個關于異常處理的工具 - 異常處理關鍵字的使用。

1、throw:用以在方法內部拋出指定類型的異常。

void test(){ if(產生異常的條件){ thorw new Exception("拋出異常"); } }

2、throws:用以聲明 1個方法可能產生的異常(通常都是編譯時檢測異常)有哪些。

void test() throws 異常1,異常2{ //這個方法可能產生異常1,異常2 throw new 異常1(); throw new 異常2();  }
3、try - catch:另外一種處理異常的方式,與throws不同的是,這類方式是指 "捕獲并處理"的方式。

用try語句塊包括可能產生異常的代碼,catch用于捕獲產生的異常,并在catch語句塊中定義對捕獲到的異常的處理方式。

try { //可能產生異常的代碼 } catch (要捕獲的異常類型 e) { //對捕獲到的異常的處理方式 }
4、finally語句塊:通常都是跟在try或try-catch以后進行使用,與其名字代表的1樣。也就是定義終究的操作。

特點是被try語句塊包括的內容中,是不是真的產生了異常。程序終究都將履行finally語句塊當中的內容。

通經常使用于對資源的釋放操作,例如:通過JDBC連接數據庫等情況。

try { //獲得資源 } catch (要捕獲的異常類型 e) { //對捕獲到的異常的處理方式 }finally{ //釋放資源 }

趣解異常的實際使用

 

了解Java中異常類的實際利用之前,應當先了解兩個概念,用以對最經常使用的異常做1個分類:

 

1、編譯時被檢測異常:

   只要是Exception和其子類都是,除特殊子類RuntimeException體系。

   所謂的編譯時被檢測異常也就是指在程序的編譯器就會進行檢測的異常分類。

 

   也就是說,如果1個方法拋出了1個編譯時檢測異常,Java則要求我們必須進行處理。

   既:通過throws對異常進行聲明處理 或是 通過try-catch對異常進行捕獲處理。

   如果程序編譯時檢測到該類異常沒有被進行任何處理,那末編譯器則會報出1個編譯毛病。

public class Test{ public static void main(String[] args) { try { Class clazz = Class.forName("Java"); System.out.println(clazz.getName()); } catch (ClassNotFoundException e) { System.out.println("沒有找到該類"); } } }

上面代碼中的ClassNotFoundException就是1種編譯時檢測異常,這個異常是由Class類當中的forName方法所拋出并聲明的。

如果我們在使用該方法時沒有對異常進行處理:聲明或捕獲,那末該程序就會編譯失敗。

 

通過這個例子想要說明的是:編譯時被檢測異常通常都是指那些“可以被我們預感”的異常情況。

正例如:我們通過Class.forName是想要獲得指定類的字節碼文件對象,所以我們自然也能夠預感可能會存在:

與我們傳入的類名參數所對應的類字節碼文件對象不存在,查找不到的情況。

既然這類意外情況是可以被預感的,那自然就應當針對其制定1些應對方案。

 

 

項目建設完成以后的結構:

前面介紹了Shell腳本的基礎和運算符等,今天再來看1下關于Shell腳本的輸入與輸出。

項目建設完成以后的結構:

  echo

項目建設完成以后的結構:

  cat

項目建設完成以后的結構:

  tee

項目建設完成以后的結構:

Shell輸入與輸出的1些概念:

項目建設完成以后的結構:

  標準輸入、輸出和毛病

項目建設完成以后的結構:

  使用文件描寫符

 

項目建設完成以后的結構:

輸入輸出命令的用法:

項目建設完成以后的結構:

  該命令的作用是可以顯示文本行或變量,或把字條串輸入到文件.

項目建設完成以后的結構:

   echo [option] string

項目建設完成以后的結構:

  ?。?-n 回車不換行,linux系統默許回車換行

項目建設完成以后的結構:

  例子:

項目建設完成以后的結構:

#!/bin/bash #echotest echo -e "we aref testing echo command " echo -n "we are testing echo command" echo "OK" echo echo "we are testing echo command " echo "output this string to file">echo_output.txt 項目建設完成以后的結構:

jesson@jesson-HP:~/develop/workspace/shell_workspace$ chmod a+rx echotest.sh jesson@jesson-HP:~/develop/workspace/shell_workspace$ ./echotest.sh we are testing echo command we are testing echo commandOK we are testing echo command 項目建設完成以后的結構:

  2. read

項目建設完成以后的結構:

  用法:

項目建設完成以后的結構:

   - 如果只指定1個變量,那末read將會把所有的輸入賦給該變量,直至遇到第1個文件結束符或回車;如果給出了多個變量,它們按順序分別被賦予不同的變量。shell將用空格作為變量之間的分隔符。

項目建設完成以后的結構:

readtest.sh

 

項目建設完成以后的結構:

  給予權限,履行腳本:

 

 

項目建設完成以后的結構:

  3. cat

項目建設完成以后的結構:

  用法:

項目建設完成以后的結構:

  例子:   

項目建設完成以后的結構:

  注意,cat命令是將輸入的所有內容顯示出來,如果需要分頁顯示,則可借助于管道|和more或less命令來實現。

 

 

項目建設完成以后的結構:

  可以通過管道把1個命令的輸出傳遞給另外一個命令作為輸入。

項目建設完成以后的結構:

   格式:command1 | command2

項目建設完成以后的結構:

jesson@jesson-HP:~/develop/workspace/shell_workspace$ ls -l 總用量 32 -rw-rw-r-- 1 jesson jesson 25 1月 22 20:16 cattest.sh -rw-rw-r-- 1 jesson jesson 27 1月 22 19:50 echo_output.txt -rwxrwxr-x 1 jesson jesson 209 1月 22 19:50 echotest.sh -rwxrw-r-- 1 jesson jesson 94 1月 15 21:20 helloworld.sh -rwxrw-r-- 1 jesson jesson 637 1月 17 17:07 parm.sh -rwxrwxr-x 1 jesson jesson 299 1月 22 20:10 readtest.sh -rwxr-xr-x 1 jesson jesson 47 1月 17 15:21 searchfile.sh -rw-rw-r-- 1 jesson jesson 141 1月 22 20:18 shelltest.bak jesson@jesson-HP:~/develop/workspace/shell_workspace$ ls -l | grep parm.sh -rwxrw-r-- 1 jesson jesson 637 1月 17 17:07 parm.sh jesson@jesson-HP:~/develop/workspace/shell_workspace$ df -k df: "/root/.gvfs": 權限不夠 文件系統 1K-塊 已用 可用 已用% 掛載點 /dev/sda9 29525076 12915484 15109792 47% / udev 2031604 4 2031600 1% /dev tmpfs 816612 860 815752 1% /run none 5120 0 5120 0% /run/lock none 2041528 792 2040736 1% /run/shm /dev/sda10 49135432 28230216 18409268 61% /home /dev/sda1 73400952 43260784 30140168 59% /media/00006A15000514EC /dev/sda5 138424040 123913684 14510356 90% /media/00010A370001FCE2 /dev/sda6 56504040 44425044 12078996 79% /media/000E2D72000188C0 /dev/sda7 138134868 32924076 105210792 24% /media/0008EEFF00004113 jesson@jesson-HP:~/develop/workspace/shell_workspace$ df -k | awk '{print $1}' df: "/root/.gvfs": 權限不夠 文件系統 /dev/sda9 udev tmpfs none none /dev/sda10 /dev/sda1 /dev/sda5 /dev/sda6 /dev/sda7 jesson@jesson-HP:~/develop/workspace/shell_workspace$ df -k | awk '{print $1}' | grep -v "文件系統" df: "/root/.gvfs": 權限不夠 /dev/sda9 udev tmpfs none none /dev/sda10 /dev/sda1 /dev/sda5 /dev/sda6 /dev/sda7 jesson@jesson-HP:~/develop/workspace/shell_workspace$ df -k | awk '{print $1}' | grep -v "文件系統"|grep dev df: "/root/.gvfs": 權限不夠 /dev/sda9 udev /dev/sda10 /dev/sda1 /dev/sda5 /dev/sda6 /dev/sda7

項目建設完成以后的結構:

  5. tee

項目建設完成以后的結構:

  用法:

項目建設完成以后的結構:

   - 如果希望在看到輸出的同時,也將其存入1個文件,那末,這個命令就最適合,-a,表示追加的意思。

項目建設完成以后的結構:

  例子:

 

項目建設完成以后的結構:

  5. exec

項目建設完成以后的結構:

  用法:

項目建設完成以后的結構:

  ?。渲械腸ommand通常是1個shell腳本。

項目建設完成以后的結構:

輸入輸出的基本概念:

項目建設完成以后的結構:

  在shell中履行命令時,每一個進程都和3個打開的文件相聯系,并使用文件描寫符來援用這些文件,由于文件描寫符不容易記,shell同時也給出了相應的文件名。

 

  • 項目建設完成以后的結構:

    文件描寫符

    項目建設完成以后的結構:

    0(缺省是屏幕,也能夠是文件)

    項目建設完成以后的結構:

    1(缺省是鍵盤,也能夠是文件或其他命令的輸出)

    項目建設完成以后的結構:

    2( 生活不易,碼農辛苦
    如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
    程序員人生

    ------分隔線----------------------------
    分享到:
    ------分隔線----------------------------
    關閉
    程序員人生
    主站蜘蛛池模板: 日韩成人中文字幕 | 久久久毛片 | 黄色片日本 | 国产精品三级三级三级 | 亚洲精品视频自拍 | 国产精品毛片无码 | 日本成人黄色片 | 毛片在线免费播放 | 久久精品系列 | 日韩一区二区三区在线 | 久久99精品久久久久久秒播放器 | 17c一起操 | 久久精品国产亚洲一区二区三区 | 精品免费二区三区三区高中清不卡 | 亚洲一区二区视频 | 亚洲综合一区二区三区 | 国产伦精品一区二区三区四区免费 | 亚洲精品国产视频 | 久久精品国产一区 | 久久综合国产伦精品免费 | 51av在线| 国产精品18 | 亚洲欧美日韩在线播放 | 老牛影视免费一区二区 | 国产成人一区二区 | 免费九九视频 | 日韩一区二区三区视频在线观看 | 久久中文字幕免费 | 日本欧美在线 | 国产精品久久久久久久久免费高清 | 91麻豆精品国产91久久久使用方法 | 国产永久免费 | 亚洲精品在线观看视频 | 午夜视频在线免费 | 亚洲成人www | 欧美不卡一区二区三区 | 在线久久 | 精品久久久影院 | 中文字幕一区二区三区日韩精品 | 国产精品一区二区三区免费 | 污网站在线 |