歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix基礎知識

Unix基礎教程(5)

第5章 C-shell的交互功能

 

【例5-1】給別名命令傳遞參數的方法。

    下面的命令遞歸式地在系統頭文件目錄下檢索所有的頭文件,查找含有termio字符串的程序行。

    find /usr/include -name "*.h" -exec grep -n termio {} /dev/null \; | more

    鍵入這麼長的一串命令很費力氣,而且,一段時間內會經常用到這個命令,不如定義一個別名用起來簡便。但是,每次檢索的字符串不同。這次檢索termio,下次檢索的是tcp_hdr,或者別的字符串。使用上述的簡單別名無法達到要求。

    別名參數的使用,是和歷史機制相同的方式。用一個驚歎號表示當前的輸入。和歷史命令一樣,在冒號後邊的數字或者^號$號代表參數號。

    alias f 'find /usr/include -name "*.h" -exec grep -n \!:$ {} /dev/null \; | more'

    這裡的驚歎號前面加上轉義符\,使得csh不再把他們解釋為歷史替換,而是把驚歎號作為一個字符,傳遞給alias命令,alias真正得到的是!:$。

    這樣,有了別名,直接使用f termio就可以了。

    也可以傳遞多個參數。

    alias scan 'find \!:3 -name "*.h" -exec grep -n \!:1 {} /dev/null \; | more'

    引用時,使用下面的命令能達到前面的命令相同的效果:

    scan termio in /usr/include

 

【例5-3】使用原始I/O的標准輸出和標准錯誤輸出。

    下面的例子與例5-2有等價的效果。

main()      /* 使用原始I/0 */

{

    static  char  *strl= ”string1\n”;

    static  char  *str2= ”string2\n”;

    int i;

    for(i=0;i<20;i++) {

        write(1,strl,strlen(str1));

        write(2,str2,strlen(str2));

    }

    exit(0);

}

Copyright © Linux教程網 All Rights Reserved