#輸入輸出重定向:Unix默認從stdin獲取輸入,stdout輸出,輸入設備是鍵盤,輸出設備是終端
#輸出重定向:明朗的輸出不僅可以是顯示器,還可以轉移到文件,這被叫做輸出重定向
#輸出重定向會覆蓋文件內容
#輸出重定向語法: command > file
echo who > users #在當前目錄創建一個users文件,並寫入獲取的當前用戶名#
#輸入重定向語法: command < file
#重定向深入講解
#一般情況Unix/Linux命令運行時都會打開三個文件
#標准輸入文件stdin:文件描述符為0,Unix默認從stdin讀取數據
#標准輸出文件stdout:文件描述符為1,Unix默認從stdout輸出數據
#標准錯誤文件stderr:文件描述符為2,Unix會向stderr流中寫入錯誤信息
#默認情況下,command > file將stdout重定向到file,command < file將stdin重定向到file
#如果希望stderr重定向到file :command 2 > file
#如果希望stderr追加到file末尾 : command 2 >> file
#如果希望stdout和stderr合並後重定向到file : command > file 2>&1 or command > file 2>&1
#如果希望stdin和stdout都重定向 :command < file1 > file2
#command命令將stdin重定向到file1,stdout重定向到file2
#查看全部可用的重定向命令列表獲取更多 ~/桌面/Blog/Shell#
#Here Document:shell中一種特殊的重定向方式:形式如下:
#command << delimiter
# document
#delimiter
#它的作用是將兩個delimiter之間的內容document作為輸入傳遞給command
#注意:結尾的delimiter一定要頂格寫
#開始的delimiter前後的空格會被忽略掉:例如:
cat << EOF This is a test EOF
#計算行數例子如下: 終端輸入 : 結果 : 3
wc -l << EOF This is a test EOF
#將document保存到當前目錄的test.txt文件
cat << EOF > test.txt This file was created automatically from a shell script EOF
#/dev/null:如果希望執行某個命令,但又不希望在終端輸出結果,那麼可以將輸出重定向到 /dec/null
# command > /dev/null
#這是一個特殊的文件,寫入其內容會被丟棄,同樣讀取不到內容。
#但它非常有用,將命令輸出重定向到它,起到 禁止輸出 的效果
#如果希望屏蔽stdout和stderr : command > /dev/null 2>&1
#像其他語言一樣,Shell可以包含外部腳本
#包含腳本可以使用:. filename or source filename
#創建一個被調用腳本subscript.sh : url="www.baidu.com"
#創建主文件main.sh
. ./subscript.sh echo ${url}
#賦予main +x 權限並執行,會輸出 www.baidu.com
#被包含腳本不需要執行權限