Updated SC2069 (markdown)

Vidar Holen
2018-03-03 13:45:40 -08:00
parent 8edeff70c8
commit bdae98d0f3

@@ -1,4 +1,4 @@
## The order of the 2>&1 and the redirect matters. The 2>&1 has to be last. ## To redirect stdout+stderr, 2>&1 must be last (or use '{ cmd > file; } 2>&1' to clarify).
### Problematic code: ### Problematic code:
@@ -14,7 +14,7 @@ firefox > /dev/null 2>&1
### Rationale: ### Rationale:
Redirections are handled in order. When it comes to redirection, order matters.
The problematic code means "Point stderr to where stdout is currently pointing (the terminal). Then point stdout to /dev/null". The problematic code means "Point stderr to where stdout is currently pointing (the terminal). Then point stdout to /dev/null".
@@ -24,7 +24,11 @@ In other words, the problematic code hides stdout and shows stderr. The correct
### Exceptions ### Exceptions
If you want stderr as stdout and stdout to a file, you can ignore this message. If you actually do want to redirect stdout to a file, and then turn stderr into the new stdout, you can make this more explicit with braces:
{ firefox > /dev/null; } 2>&1
Also note that this warning does not trigger when output is piped or captured.
### Related resources: ### Related resources: