I know that having an
& at the end of a command makes it run in the background. I was wondering what does
&Number mean? I was looking at a script that has some commands running with
&1 and some with
This should be migrated to SuperUser, but the answer is that they refer to file descriptors. &1 is standard output, and &2 is standard error, so a program run like this:
Redirects descriptor 2 (standard error) to descriptor 1 (standard output)
A common use of this is to do something like this:
./program >file.txt 2>&1
Which redirects standard output into a file, and then standard error into standard output, so that you get both regular and error output captured in the file.
The '&' indicates a file descriptor. &1 is stdout, and &2 is stderr.
If you haven't found a good site for learning shell scripting already, I recommend this one: