16

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:

3 Answers 3

26

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.

2
  • 2
    Note that 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
  • 1
    Also PATH+=:B works for string concatenation. Commented Jul 17, 2013 at 20:24
4

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.

1

Another approach:

export PATH=$(tr -d $'\n ' <<< "
   /path/A:
   /path/B:
   /path/C")

Has the added benefit of not messing up your indent levels.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .