我寫了一個bash腳本。它有幾個回聲陳述。它調用了一些第三方工具。我想重定向到stdout(從我的echo語句和所有工具輸出)到stderr的所有內容。我怎麼做?如何將輸出從bash腳本重定向到stderr
回答
您需要將命令的stdout重定向到stderr。
your_command.sh 1>&2
如果你想從腳本中做到這一點,你可以用你的整個腳本到一個功能,它的輸出重定向到stderr:
main() {
echo hello
echo world
some_script.sh
}
main 1>&2
exec >&2
將是在腳本的頂部將所有未來輸出重定向到stderr。
$ help exec
exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
Replace the shell with the given command.
Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
any redirections take effect in the current shell.
簡單!假設我想要輸出到stdout和stderr? –
這不會重定向工具的輸出 –
當然可以。它會影響所有命令。 –
爲我工作的解決方案是中(的)封閉腳本的文本和標準輸出重定向到stderr像這樣:
( echo 1 echo 2 tool1 ) 1>&2
嘗試用卷邊。 '{...}>&2' –
- 1. Bash腳本 - 將子腳本stderr重定向到父級的stdout
- 2. 將輸出重定向到stderr
- 3. 如何重定向標準輸出stderr在螞蟻腳本?
- 4. 重定向Bash子腳本的輸出
- 5. bash腳本,錯誤輸出重定向
- 6. 重定向輸出bash腳本
- 7. 將bash輸出重定向到python腳本
- 8. 如何將子進程輸出重定向到stderr?
- 9. 如何在groovy中將輸出重定向到stderr?
- 10. 如何將bash腳本的輸出重定向到即時屏幕?
- 11. 如何將stdout和stderr重定向到文件AND仍只輸出stderr?
- 12. 如何將RUNTIME ERRORS重定向到STDERR?
- 13. 如何將Python腳本的輸出重定向到終端
- 14. 如何將python腳本cmd輸出重定向到文件?
- 15. 如何將stdout和stderr輸出從Perl腳本重定向到Windows上的文件?
- 16. 將函數的輸出重定向到腳本輸出
- 17. 將輸出從shell腳本重定向到文件
- 18. Bash腳本不會將輸入重定向到子進程
- 19. 在bash腳本中測試stdout和stderr重定向
- 20. stderr在bash腳本中的臨時重定向
- 21. Bash吃stderr輸出
- 22. 如何在Bash中重定向輸出
- 23. 做一個bash腳本輸出STDOUT&STDERR到一個文件
- 24. 瞭解stderr標準輸出重定向
- 25. 重定向stdout和stderr的輸出?
- 26. 將stderr重定向到C中的文件和標準輸出
- 27. PERL無法將stdout和stderr重定向到輸出文件
- 28. 將stderr重定向到c shell中的標準輸出
- 29. go - 將stderr重定向到文件並輸出到標準輸出
- 30. 將wget輸出重定向到perl腳本輸入
因此,像? echo hello 1>&2此外,這是否與(>&2 echo hello)相同 –
@PhilO是的,重定向操作符可以出現(幾乎)在命令行的任何位置,因爲shell在調用命令之前識別並刪除它們。它們可以在一個簡單命令的名字前面,就像你的例子一樣,但是它們必須出現在像'while','for','if'等複合命令之後。'echo 1>&2 hello'也可以工作。 – chepner