mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Created SC2002 (markdown)
21
SC2002.md
Normal file
21
SC2002.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.
|
||||||
|
|
||||||
|
### Problematic code:
|
||||||
|
|
||||||
|
cat file | tr ' ' _
|
||||||
|
|
||||||
|
### Correct code:
|
||||||
|
|
||||||
|
tr ' ' _ < file
|
||||||
|
|
||||||
|
### Rationale:
|
||||||
|
|
||||||
|
`cat` is a tool for con"cat"enating files. Reading a single file as input to a program is considered a [Useless Use Of Cat (UUOC)](http://en.wikipedia.org/wiki/Cat_(Unix)#Useless_use_of_cat).
|
||||||
|
|
||||||
|
It's more efficient and less roundabout to simply use redirection. This is especially true for programs that can benefit from seekable input, like `tail`.
|
||||||
|
|
||||||
|
Many tools also accept optional filenames, e.g. `grep -q foo file` instead of `cat file | grep -q foo`.
|
||||||
|
|
||||||
|
### Contraindications
|
||||||
|
|
||||||
|
None.
|
Reference in New Issue
Block a user