網站首頁 編程語言 正文
shell 錯誤輸出重定向到標準輸出
./tmp/test.sh > /tmp/test.log 2>&1
>和<是文件重定向符。那么1和2是什么?
shell中每個進程都和三個系統文件相關聯
標準輸入stdin
標準輸出stdout
標準錯誤stderr
三個系統文件的文件描述符分別為0,1和2。
所以這里2>&1的意思就是將標準錯誤也輸出到標準輸出當中。
下面通過一個例子來展示2>&1有什么作用:
$ cat test.sh
t
date
test.sh中包含兩個命令,其中t是一個不存在的命令,執行會報錯,默認情況下,錯誤會輸出到stderr。date則能正確執行,并且輸出時間信息,默認輸出到stdout。
標準輸出重定向到log文件中,標準錯誤打印在屏幕上
./test.sh > test1.log
/test.sh: line 1: t: command not found
$ cat test1.log
Tue Oct 9 20:51:50 CST 2007
可以看到,date的執行結果被重定向到log文件中了,而t無法執行的錯誤則只打印在屏幕上。標準輸處和標準錯誤重定向到同一log文件中
$ ./test.sh > test2.log 2>&1
$ cat test2.log
./test.sh: line 1: t: command not found
Tue Oct 9 20:53:44 CST 2007
這次,stderr和stdout的內容都被重定向到log文件中了。
實際上, >就相當于1>也就是重定向標準輸出,不包括標準錯誤。通過2>&1,就將標準錯誤重定向到標準輸出了(stderr已作為stdout的副本),那么再使用>重定向就會將標準輸出和標準錯誤信息一同重定向了。
標準輸處和標準錯誤重定向到不同log文件中
如果只想重定向標準錯誤到文件中,則可以使用2> file。
sh mr_add_test.sh 1>log.log 2>log_err.log
如何將shell腳本的全部執行結果記入一個log文件
./script.sh >>logfile 2>&1
執行腳本script.sh時將錯誤輸出2以及標準輸出1都一起以附加寫方式導入logfile文件。
即使多次執行腳本,之前的log也仍然存在。
原文鏈接:https://blog.csdn.net/sinat_25873421/article/details/80340049
相關推薦
- 2023-03-25 Excel?VBA指定條件刪除整行整列的實現_vbs
- 2022-06-29 徹底掌握C語言strcat函數的用法_C 語言
- 2022-12-11 C語言中求解圖形的問題_C 語言
- 2022-08-07 pandas時間序列之pd.to_datetime()的實現_python
- 2022-04-21 MongoDB高效讀寫海量數據的方法_MongoDB
- 2022-07-18 SQL?Server中日期時間函數的用法詳解_MsSql
- 2022-09-20 基于C語言實現隨機點名器(附源碼)_C 語言
- 2022-07-29 詳解Go語言中配置文件使用與日志配置_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支