1. 在變數的前面加入反斜線「 \ 」則後面的特殊字元在執行時無效視為一般字元
  2. 在單引號「 ’」「’」中的特殊字元在執行時無效視為一般字元
  3. 在雙引號「”」「”」中的特殊字元在執行時有效。例如:變數
  4. 「>」為覆蓋原內容 「>>」為附加在文件後面

標準輸入、輸出、錯誤輸出

vi main.c                 編輯建立一個程式main

#include  <stdio.h>

int main()

{

printf(“Hello\n”);

get char();

return 0;

}

gcc main.c –o  main         使用gcc  編譯程式

./main                執行編譯過的程式

pstree  -p           查詢所有系統中執行中的程式並顯示process id

cd /proc/process id /fd      可以檢視process id  的標準輸入、輸出、錯誤輸出狀況

image

標準輸出的導向:

例:

date  >  /tmp/1.txt

cat  /tmp/1.txt

例:

./main  >  /tmp/1.txt          可查看fd 中的狀況

cat /tmp/1.txt

 

標準錯誤輸出的導向(錯誤訊息):

例:

useradd  2> /tmp/2.txt                   若要將標準的錯誤輸出導向必須使用「 2> 」的方式

cat  /tmp/2.txt

 

vi main2.c                 編輯建立一個程式main2

#include  <stdio.h>

int main()

{

fprintf(stdout,“OK\n”);

fflush(stdout);

fprintf(stderr,“NO\n”);

fflush(stderr);

get char();

return 0;

}

gcc main2.c –o  main2         使用gcc  編譯程式

./main 2   2> /tmp/2.txt               執行編譯過的程式

cat  /tmp/2.txt                                可以檢視錯誤輸出

 

將正確和錯誤導向到同一檔案all.txt,建議以第一和方式來使用

./main  1>  /tmp/all.txt  2>&1

./main  2>  /tmp/all.txt  1>&2

./main    &>  /tmp/all.txt

image

標準輸入的導向(用檔案代替鍵盤輸入)

例:

tr   a-z  A-Z  <  /etc/passwd                  利用tr 指令可以轉換大小寫功能將 /etc/passwd 檔案輸入後進行轉換

例:

mail  -s  “標題”  帳號   <  /tmp/2.txt             利用輸入導向可以將文字檔內容輸入到mail 內容中

使用管線符號將二個程式連結:

./main2  2>&1  |  more               將main2 執行時的標準輸出以及錯誤標準輸出交給管線後由more 程式執行

 

arrow
arrow
    全站熱搜

    奔騰兔 發表在 痞客邦 留言(0) 人氣()