Steam for Linux

Both scripts /usr/bin/steam and Steam/steam.sh use similar code to obtain the directory where the script itself resides.

STEAMROOT=$(cd "${0%/*}" && echo $PWD)

There is a lengthy explanation what it does. The ${0} is the name of the program currently been executed, in the way it have been started by exec(). The %/* portion removes the filename, leaving only the directory. The `cd` then goes into that directory. After successful change to the directory, its full pathname is contained into the PWD variable and the `echo` commands outputs it to the STEAMROOT variable.

All nice and good, unless you try to start the script from the command line. (As I was doing while trying to make it work under my Slackware). The problem is that regular users can start programs without writing any path component in the program name, just by typing `steam.sh` (instead of `./steam.sh`).

This makes the `cd` return error then the "&&" portion (logical "AND") handles the error and does not execute the second operation - `echo $PWD`. As result the rest of script may do strange things.

For me replacing the "&&" with ";" improves the things (so both commands are separate and always executed).I can't came with other cases where `cd` could fail, other than changing permission of a directory after the scrip is started but before the `cd` is executed.