No, it makes much more sense to start with the command that is to process the file. Most commands take a command line argument to specify which file to process. This mirrors the redirection syntax perfectly:
You say:
grep haystack needle.txt
or:
grep haystack < needle.txt
whereas this is more convoluted:
cat needle.txt | grep haystack
As a bonus the syntax looks the same for output redirection:
sort < infile.txt > outfile.txt
whereas this is not as readable:
cat infile.txt | sort > outfile.txt
What "makes sense" to you doesn't always to other people. In this case it's trivial, but it's a nightmare to debug larger scripts when there are lots of unnecessary redirections and if statements.
Shell scripts may be one-offs, but they tend to linger. It's not unwise to spend a few extra moments to make them readable and follow best practice. It is code after all.
You say:
or: whereas this is more convoluted: As a bonus the syntax looks the same for output redirection: whereas this is not as readable: What "makes sense" to you doesn't always to other people. In this case it's trivial, but it's a nightmare to debug larger scripts when there are lots of unnecessary redirections and if statements.Shell scripts may be one-offs, but they tend to linger. It's not unwise to spend a few extra moments to make them readable and follow best practice. It is code after all.
(Also; a bit silly with the personal attacks.)