Correct quoting, [[ ]] instead of [ ], (( )) instead of [ ] for arithmetic expressions, $() instead of backticks,  better if statements, '' quotes for plain strings, removed reduntant cat and echo calls, removed trailing whitespace, removed # Functions # comment (That's obvious), other minor fixes
Code style consistency ('then' and '{' on the same line)
Since both styles are used, I believe that I have the right to choose between the two.
Indentation is already there to indicate code blocks, also it seems like this way is more
popular in bash community, thus I decided to use 'then' and { on the same line.
apt-get and yum will not hide any information now
This line:
res=$(apt-get install -y "${DEBIAN_DEPS[@]}")
Does not make any sense. Some might think that it will catch the whole output,
but in reality it will only catch stdout. This means that all errors would be
printed before apt-get or yum finishes its execution. By printing $res afterwards
we will push all error messages up. This is terribly wrong, since some terminal
emulators will not save the output infinitely.
So, there are several possible fixes. One possibility is to redirect stderr to stoud:
res=$(apt-get install -y "${DEBIAN_DEPS[@]}" 2>&1)
Another solution is to hide stdout completely. However, this does not make any
sense, because we're not hiding stdout from apt-get update, aren't we?
Lastly, we can show the whole output! There is no reason to hide what is going
on anyway. That's what I did in this commit.
Some consistency in variable declarations, 'egrep' is changed to 'grep -E' (man grep clearly states that the former is derpecated), space after all parameters for consistency, using -- to fix possible bug with weird filenames, using 'grep -E' instead of regular grep where needed, other minor fixes