In general, foo < bar
and < bar foo
are equivalent in bash scripting. Any time < filename
is processed by the shell, it means that the command it's associated with will have its standard input come from that file. No extra command or process is involved with this; the shell does it itself.
Running cat filename
reads the contents of the specified file and writes them to standard output. |
between two commands means connect standard output of the left command to standard input of the right command.
Thus, both of your commands have the same effect of sending the contents of /proc/uptime
to awk, but the first way starts an extra cat
process to do so.