Hi, welcome to LQ!
First, a suggestion: Please edit your post to get rid of the orange text; it is VERY hard to read. Use regular black text. Also, if you could put [code] tags around the script, that would be good too
1) -a is the same as -e but this may differ depending on which particular shell you are using. -e is used to check if a file exists, so if supported in your shell, -a would do the same thing. So, the test in your script, checks to see if the filename contained in the variable $SERVER_LOG is an existing file.
2) export SOMETHING, means export the value of the SOMETHING variable, into the shell's environment, to make it available to any scripts of programs running in that shell.
3) Things such as &1, &2, &0 refer to 'file descriptors', specifically "standard output" and "standard error" and "standard input". Messages coming from any program running, are returned to the user via standard output, unless they are errors, which arrive via standard error. Standard Input, is how data gets inputted into the program.
4) nohup is used to run a program in such a way that it will ignore the HUP or HANGUP signal.
All of this and much much more, is available on the man page of your shell. So, if using Bash shell, type "man bash
" at a prompt, and read through the documentation. nohup has a man page of its own.