#! /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