Re:What I learned from others' shell scripts
by damncabbage on Wednesday August 14, 2013 @04:40AM
(#6210480)
The outer quotes aren't required:
APP_ROOT=`dirname "$0"`
(See http://www.tldp.org/LDP/abs/html/varassignment.html#EX16)Also, even if ^J or ^M were present in a parent directory's name, the command above would still work. Whitespace-like characters take some getting used to with Bash.
This is not going to do what you expect if the current script is run via a command with spaces in one of the preceding directories' name.
It should be: APP_ROOT="`dirname "$0"`"
Even this would fail if your immediate parent directory's name ended with a newline character, but should handle any other whitespace without issue.