1
A
回答
1
外殼必須提供的文件是準備好寫,這意味着它必須打開該文件的命令(如果需要創建它)在開始命令之前。一種選擇是使用一個單獨的進程,該進程從命令的標準錯誤中讀取,並且只有在獲得某些輸入時才寫入該文件。
mkfifo err
while read -r line; do
echo "$line" >> ssh.error
done < err & log_pid=$!
service ssh stop 2> err
kill "$log_pid"
rm err
這比僅僅刪除空文件效率低。
2
外殼重定向不知道任何關於您正在運行的命令(它可能甚至可能不存在)。重定向(和文件創建)在之前發生命令運行。
這就是爲什麼你無法使用重定向讀取和寫入單個文件。 (即,printf 'contents\ncontents\n' > file; more file > file
截斷/清空file
文件)。
1
你可以用它來刪除該文件,如果它是空的
service ssh stop 2> ssh.error && [[ ! -s ssh.error ]] && rm ssh.error
相關問題
- 1. 當沒有錯誤顯示時從錯誤頁面重定向
- 2. 重定向輸出猛砸
- 3. 猛砸語法錯誤 '(' Windows 7的
- 4. 猛砸嵌套的if-else錯誤
- 5. 猛砸if語句語法錯誤
- 6. 猛砸平腳本LCD錯誤信息的錯誤
- 7. 猛砸沒有這樣的文件或目錄的錯誤(緩存模擬器)
- 8. 重定向到有錯誤的頁面
- 9. Django的重定向沒有反向匹配錯誤
- 10. 猛砸了,當沒有文件發現
- 11. 猛砸沒有作品新用戶
- 12. 沒有錯誤
- 13. PageMethods沒有定義錯誤
- 14. 錯誤:'jQuery沒有定義'
- 15. Zingchart沒有定義錯誤
- 16. FUNCTION_NAME沒有定義錯誤
- 17. 類沒有錯誤沒有定義
- 18. 運行時沒有錯誤
- 19. PHP登錄功能沒有數據庫,重定向錯誤
- 20. 用django重定向錯誤。似乎沒有任何工作
- 21. 標題不重新定向(並且沒有任何錯誤)
- 22. htaccess文件沒有500錯誤WordPress的重定向
- 23. Uber api oauth2錯誤:沒有提供代碼的重定向URI
- 24. 猛砸有JQ分組
- 25. 重定向錯誤laravel
- 26. Prestashop重定向錯誤
- 27. 按鈕重定向錯誤
- 28. ASP.Net 301重定向錯誤
- 29. 錯誤掛架重定向
- 30. .htaccess重定向錯誤
這是正常行爲。如果文件爲空,請刪除該文件。或者乾脆忽略它。 http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – 2014-10-20 11:27:29