1.在除錯shell時可以將標準輸出,錯誤輸出一起重定向到乙個檔案中,這樣尤其在除錯程式呼叫shell至關重要。
2.在shell中列印環境資訊,到日誌檔案,幫助分析呼叫環境是否正確。
echo `who ma i` >> log.txt 2>&1
echo `id -u` >> log.txt 2>&1
echo `whoami` >> log.txt 2>&1
echo "$user" >> log.txt 2>&1
echo "$uid" >> log.txt 2>&1
echo `who` >> log.txt 2>&1
echo `which sqoop` >> log.txt 2>&1
3.自己手工執行環境初始化
source ~/.bash_profile
4.linux環境指令碼,不要使用tab,因為tab在shell中是有語法含義的會影響正常執行
linux的標準輸入輸出:
對於任何一條linux 命令執行,它會是這樣乙個過程:
乙個命令執行了:
先有乙個輸入:輸入可以從鍵盤,也可以從檔案得到
命令執行完成:成功了,會把成功結果輸出到螢幕:standard output預設是螢幕
命令執行有錯誤:會把錯誤也輸出到螢幕上面:standard error預設也是指的螢幕
linux shell下常用輸入輸出操作符是:
1. 標準輸入 (stdin) :**為 0 ,使用 < 或 << ; /dev/stdin -> /proc/self/fd/0 0代表:/dev/stdin
2. 標準輸出 (stdout):**為 1 ,使用 > 或 >> ; /dev/stdout -> /proc/self/fd/1 1代表:/dev/stdout
3. 標準錯誤輸出(stderr):**為 2 ,使用 2> 或 2>> ; /dev/stderr -> /proc/self/fd/2 2代表:/dev/stderr
#繼續追加把輸出寫入suc.txt err.txt 「>>」追加操作符
[chengmo@centos5 shell]$
ls
test
.sh test1.sh 1>>suc.txt 2>>err.txt
#將錯誤輸出資訊關閉掉
[chengmo@centos5 shell]$
ls
test
.sh test1.sh 2>&-
test
.sh
[chengmo@centos5 shell]$
ls
test
.sh test1.sh 2>
/dev/null
test
.sh
#&[n] 代表是已經存在的檔案描述符,&1 代表輸出 &2代表錯誤輸出 &-代表關閉與它繫結的描述符
#/dev/null 這個裝置,是linux 中黑洞裝置,什麼資訊只要輸出給這個裝置,都會給吃掉
#關閉所有輸出
[chengmo@centos5 shell]$
ls
test
.sh test1.sh 1>&- 2>&-
#關閉 1 ,2 檔案描述符
[chengmo@centos5 shell]$
ls
test
.sh test1.sh 2>
/dev/null
1>
/dev/null
#將1,2 輸出**給/dev/null裝置
[chengmo@centos5 shell]$
ls
test
.sh test1.sh >
/dev/null
2>&1
#將錯誤輸出2 繫結給 正確輸出 1,然後將 正確輸出 傳送給 /dev/null裝置 這種常用
[chengmo@centos5 shell]$
ls
test
.sh test1.sh &>
/dev/null
#& 代表標準輸出 ,錯誤輸出 將所有標準輸出與錯誤輸出 輸入到/dev/null檔案
<
/p
>
shell中輸入重定向,輸出重定向,管道
什麼是檔案描述符 1 程序中開啟乙個檔案就會有乙個檔案描述符 2 檔案描述符是乙個非負整數 3 系統為每乙個程序維護乙個檔案描述符表 程序級檔案描述符 4 同乙個程序裡面不同檔案描述符可以對應同乙個檔案 乙個檔案被開啟多次 5 不同程序的檔案描述符可以相同 不影響 可以指向同乙個檔案,也可以指向不同...
shell輸出重定向操作
在linux shell執行命令時,每個程序都和三個開啟的檔案相聯絡,並使用檔案描述符來引用這些檔案。由於檔案描述符不容易記憶,shell同時也給出了相應的檔名。標準輸入 0 預設是鍵盤,為0時是檔案或者其他命令的輸出 標準輸出 1 預設是螢幕,為1時是檔案 標準出錯 2 預設是螢幕,為2時是檔案 ...
shell輸出重定向操作
在linux shell執行命令時,每個程序都和三個開啟的檔案相聯絡,並使用檔案描述符來引用這些檔案。由於檔案描述符不容易記憶,shell同時也給出了相應的檔名。標準輸入 0 預設是鍵盤,為0時是檔案或者其他命令的輸出 標準輸出 1 預設是螢幕,為1時是檔案 標準出錯 2 預設是螢幕,為2時是檔案 ...