檔案描述符是與檔案輸入和輸出的相關聯的整數,它們用來追蹤已開啟的檔案,檔案描述符0,1,2是系統預留的。
0 --> stdin (標準輸入)
1 --> stdout (標準輸出)
2 --> stderr (標準錯誤)
$ echo a1>a1$ cp a1 a2;cp
a2 a3
$ cat a*
cat: a1: permission denied
a1a1
將0定向到std.txt,將2定向到err.txt
$ cat a* >std.txt 2>err.txt
將0和1都定向到out.txt
$ cat a* >out.txt 2>&1.txt
tee命令
將stdin重定向到文字中並且在螢幕列印出來。
$ cat a*|teeout.txt
cat: a1: permission denied
a1a1
$ cat
out.txt
a1a1
注意:out.txt並不包含「cat: a1: permission denied
」,因為它只能從stdin中進行讀取。
預設的tee命令會將檔案覆蓋,但提供乙個-a的選項用於追加。
$ cat a*|tee-a out.txt重定向指令碼內部的文字塊
#/bin/bash自定義檔案描述符sqlplus /nolog conn scott/tiger
select * from cat
;commit;
exit
eof
$ exec 4>output.txt$ echo newline >&4
$ cat
output.txt
newline
$ echo hello >input.txt$ exec 3
$ cat
<&3
hello
shell指令碼學習12 檔案包含
像其他語言一樣,shell 也可以包含外部指令碼,將外部指令碼的內容合併到當前指令碼。shell 中包含指令碼可以使用 filename 或 source filename 兩種方式的效果相同,簡單起見,一般使用點號 但是注意點號 和檔名中間有一空格。例如,建立兩個指令碼,乙個是被呼叫指令碼 sub...
shell指令碼學習(3)檔案判斷
shell常用的檔案判斷運算子如下 e 檔案是否存在 f 檔案是否是普通檔案 不是目錄 裝置檔案 鏈結檔案 s 表示檔案大小不為0 d 表示檔案是否是目錄 b 表示是塊裝置 光碟機 軟盤等 c 表示是字元裝置 鍵盤 音效卡等 p 表示是管道 h 表示是符號鏈結 s 表示是否是socket r w x...
Shell指令碼學習筆記 十 檔案操作
檔案操作 取得目錄內容 lsgetconf arg max 判斷檔案是否存在 建立檔案 建立一般檔案 建立檔案 1 使用轉向輸出 text.txt 2 配合空命令 test.xtx 可以增加script移植性,有時候使用 檔案 會造成語法錯誤 3 建立隱藏檔案 test.txt 4 使用touch命...