I have very long export PATH=A:B:C ...
. Can I make a multiple lines to have more organized one as follows?
export PATH = A:
B:
C:
You can do:
export PATH="A"
export PATH="$PATH:B"
export PATH="$PATH:C"
Each subsequent line appends onto the previously defined path. This is generally a good habit, as it avoids trashing the existing path. If you want the new component to take precedence, swap the order:
export PATH="A"
export PATH="B:$PATH"
export PATH="C:$PATH"
Alternatively, you might be able to do:
export PATH=A:\
B:\
C
where \
marks a line continuation. Haven't tested this method.
export
is a built-in command, not a keyword nor a syntactic assignment. So if you have PATH
elements containing whitespace (or glob characters), you do need double quotes around export PATH="$PATH:B"
. You could also write PATH=$PATH:B
and so on; you only need to export
a variable once, not every time it changes (except in some very old Bourne shells), and you don't need the double quotes in an assignment.
Commented
May 17, 2011 at 20:37
You can extend lines in bash using a backslash at the end of a line like this:
export PATH=/path/A:\
/path/B:\
/path/C
Please note that the absence of white space is important here.
Another approach:
export PATH=$(tr -d $'\n ' <<< "
/path/A:
/path/B:
/path/C")
Has the added benefit of not messing up your indent levels.