Linux 之 Shell 知識

1. 在編寫shell時,第一行一定要指明系統需要那種shell解釋你的shell程序,
#! /bin/bash
#! /bin/csh,/bin/tcsh,
#! /bin/pdksh

2. 執行shell程序文件有三種方法
# . file  
#chmod +x file  //+用於設置權限  - 用於取消
#sh file


3. 如果需要查找this.cmd = new String[] { "/bin/sh", "-c", shellCmd };  該命令中 /bin/sh -c 參數的作用,在在命令行下輸入

> man sh  

> /-c


4. if [$#  -ne  1];then  表示如果參數不等於1

$# 表示提供到shell腳本的參數總數  $1 表示第一個參數

-ne 表示  不等於

-eq 等於、-gt 大於 、-ge大於等於、-lt 小於、-le小於等於

5. Linux shell  I/O 重定向

 1)基本概念

a、I/O重定向通常與 文件描述符FD(File Descriptor) 有關,shell的FD通常爲10個,即0~9;

b、常用的FD有3個,爲0(stdin,標準輸入)、1(stdout,標準輸出)、2(Stderr,標準錯誤輸出)默認與設備keyboard、monitor、monitor有關;

c、用 < 改變讀進的數據信道(stdin),使之從指定的檔案讀進;

d、用 > 改變送出的數據信道 (stdout,stderr),使之輸出到指定的檔案;

e、0 是 < 的默認值,因此< 與 0< 是一樣的; > 與 1> 是一樣的;

f、管道 “|” 上一個命令的 stdout 接到下一個命令的 stdin;

g、exec只有在對文件描述符進行操作時,exec纔不會覆蓋你當前的shell 環境。

2)基本IO

cmd > file  把 stdout 重定向到 file 文件中

cmd >>file  把 stdout 重定向到 file 文件中(追加)

cmd 1 > file  把 stdout 重定向到 file 文件中

cmd > file 2>&1  把 stdout 和 stderr 一起重定向到file 文件中

cmd  < file  > file2  cmd 命令以file 文件作爲 stdin, 以 file2 文件作爲stdout

cat <>file  以讀寫方式打開file

cmd << delimiter     從stdin中讀入,直至遇到delimiter分界符

3)進階IO

>&n    使用系統調用  dup(2)複製文件描述符 n 並把結果用作標準輸出

<&n    標準輸入複製自文件描述符n

<&-     關閉標準輸入(鍵盤)

>&-     關閉標準輸出

n<&-     將 n 號輸入關閉

n>&-     將  n 號輸出關閉

exec 5>&-    關閉 FD5







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章