2

I was adding a $PATH to .bash_profile:

PATH="/Applications/MAMP/bin/php/php5.3.6/bin:$PATH"

So I could install PEAR on MAMP. That all worked, but now I have an this error each time I start up:

-bash: export: `/usr/local/bin': not a valid identifier

I tried a lot of solutions from people with similar problems, such as:

I messed up my bash configuration on mac

These are the files possibly containing the problem:

/etc/profile

# System-wide .profile for sh(1) if [ -x /usr/libexec/path_helper ]; then eval /usr/libexec/path_helper -s` fi if [ "${BASH-no}" != "no" ]; then [ -r /etc/bashrc ] && . /etc/bashrc fi`

/etc/paths

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

~/.profile

export PATH="/usr/bin:/bin:/usr/sbin:/sbin:$PATH"

~/.bash_profile

#export PATH="/usr/bin:/bin:/usr/sbin:/sbin:$PATH"

launchctl export

    PATH="/usr/bin:/bin:/usr/sbin:/sbin"; export PATH;
    TMPDIR="/var/folders/9l/7n7rrkrj0d51ydll3hb3l8780000gn/T/"; export TMPDIR;
    SHELL="/bin/bash"; export SHELL;
    HOME="/Users/XXXXXX"; export HOME;
    USER="XXXXXX"; export USER;
    LOGNAME="XXXXXX"; export LOGNAME;
    SSH_AUTH_SOCK="/tmp/launch-d3uaRv/Listeners"; export SSH_AUTH_SOCK;
    Apple_Ubiquity_Message="/tmp/launch-YdytLh/Apple_Ubiquity_Message"; export Apple_Ubiquity_Message;
    Apple_PubSub_Socket_Render="/tmp/launch-8QgJZ0/Render"; export Apple_PubSub_Socket_Render;
    DISPLAY="/tmp/launch-c6nAQC/org.macosforge.xquartz:0"; export DISPLAY;

printenv

TERM_PROGRAM=Apple_Terminal
TERM=xterm-256color
SHELL=/bin/bash
TMPDIR=/var/folders/9l/7n7rrkrj0d51ydll3hb3l8780000gn/T/
Apple_PubSub_Socket_Render=/tmp/launch-8QgJZ0/Render
TERM_PROGRAM_VERSION=309
TERM_SESSION_ID=8336481B-7483-4050-919F-1268887775DE
USER=XXXXXX
COMMAND_MODE=unix2003
SSH_AUTH_SOCK=/tmp/launch-d3uaRv/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0:0
Apple_Ubiquity_Message=/tmp/launch-YdytLh/Apple_Ubiquity_Message
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:
PWD=/Users/XXXXXX
SHLVL=1
HOME=/Users/XXXXXX
LOGNAME=XXXXXX
LC_CTYPE=UTF-8
DISPLAY=/tmp/launch-c6nAQC/org.macosforge.xquartz:0
_=/usr/bin/printenv
OLDPWD=/Users/XXXXXX

Files in '/etc/paths.d/':

40-XQuartz

/opt/X11/bin

I dont have a bashrc directory at location /etc/bashrc.

I also don't have ~/.bashrc.

Maybe it is also useful that before I installed PEAR I added a symlink to /usr/bin maybe that is part of the problem?

  • 1
    I posted a possible solution. BTW, can you please modify your question by posting your entire .bash_profile? You can copy and past the result of cat ~/.bash_profile – Maverik Oct 10 '12 at 13:49
  • Hi! That is my entire '.bash_profile'. Maybe that is the problem. – bottleboot Oct 10 '12 at 13:52
  • Ok. It looks ok. Is ~/.profile empty? Please try to comment the line you added in ~/.bash_profile and copy and paste the result of echo $PATH – Maverik Oct 10 '12 at 14:02
  • That's something really strange, how you can do echo if your $PATH is empty? – Maverik Oct 10 '12 at 14:21
  • I updated and added the answer! – bottleboot Oct 10 '12 at 14:25
  • /usr/bin should be in your $PATH, as well as /bin:/usr/sbin:/sbin – Maverik Oct 10 '12 at 14:26
  • you can try to manually add them to your PATH by adding to .bash_profile the line export PATH=/usr/bin:/bin:/usr/sbin:/sbin:$PATH – Maverik Oct 10 '12 at 14:29
  • That is all set now. I still get the same error. I also tried removing the file but that also didn't make any difference. – bottleboot Oct 10 '12 at 14:37
  • Which file you removed? – Maverik Oct 10 '12 at 14:41
  • I did this /bin/mv .bash_profile bash_profile_disabled – bottleboot Oct 10 '12 at 14:52
  • 1
    If you comment the line in .bash_profile, do you still have to do /bin/mv for moving a file or you can just use mv? If not, there is something wrong, because all the "shell commands" like mv are in \bin which should be in your $PATH – Maverik Oct 10 '12 at 15:00
  • When I comment .bash_profile I can still use mv or ls etc – bottleboot Oct 10 '12 at 15:08
  • Hence your $PATH cannot be empty, however when you call the command mv from a directory different than /bin, it should return -bash: mv: command not found – Maverik Oct 10 '12 at 15:11
  • Ah, when I comment now, this is my $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin: – bottleboot Oct 10 '12 at 15:14
  • Good, that's look something like mine when I comment all my .profile. Now try to add the line I put in my answer to the file .profile and than echo $PATH – Maverik Oct 10 '12 at 15:19
  • Did that, still having the same issue and $PATH is still returning the same thing – bottleboot Oct 10 '12 at 15:33
  • 1
    Did you cut&paste the "invalid identifier" message directly from Terminal or did you type it into the question manually? – nohillside Oct 10 '12 at 18:47
  • It's a cut and paste! – bottleboot Oct 10 '12 at 21:57
  • 1
    Could you post the content of /etc/paths, each file in /etc/paths.d/, /etc/bashrc, ~/.profile, ~/.bash_profile, ~/.bashrc and the output of launchctl export and printenv? Do you use macports? – Percival Ulysses Oct 12 '12 at 15:17
  • Thanks! I updated my question. Is this what you mean with macports: http://www.macports.org/ ? – bottleboot Oct 12 '12 at 15:57
  • 1
    Yes, I meant that macports. But you just seem to have X11/XQuartz installed. I forgot to ask for the content of ~/.bash_login, if there is such a file. Right now, are there any problems? The only strange thing that I see that the PATH in printenv should be grander because of the stuff in ~/.profile. – Percival Ulysses Oct 12 '12 at 16:28

2 Answers2

8

The error message you listed is the result of using one of

 export $VARIABLE
 export /a/path/to/something
 export *more or less anything which is not a syntactically correct variable name*

instead of

 export VARIABLE

in one of your initialization files. To find the offending line you need to look into all the .profile, .bash_profile and anything sourced/called from there and grep for 'export ' to find it.

As it seams to be related to the installation of either PEAR or MAMP I would start looking at any additions done by these installations.

nohillside
  • 100,768
  • 1
    The error message is clear enough. This is the correct answer, and forget all other voodoo.. Simply, you have somewhere an commands like: VAR=/usr/local/bin ; export $VAR (instead of export VAR). You can insert at the top of your .profile set -x, open new terminal window and see what is happening... – clt60 Oct 12 '12 at 22:16
  • Thanks! Any more ideas where would I find the culprit? I looked into all listed files in this thread and can't find any instance that has export $VAR instead of VAR – bottleboot Oct 13 '12 at 14:17
  • You also have to look in any files sourced/called from the standard files – nohillside Oct 13 '12 at 14:54
  • for some reason when I did a cat /etc/profile now, I got : 'export PATH=$PATH: /usr/local/bin' on the final line

    Which was causing the problem. Not sure who to give the answer to now.

    – bottleboot Oct 13 '12 at 16:04
  • @bottleboot, so just to be clear, the problem was a stray space on the line 'export PATH=$PATH: /usr/local/bin' which should have been 'export PATH=$PATH:/usr/local/bin'. It had nothing to do with export $VARIABLE. – Old Pro Oct 18 '12 at 04:16
  • Yes that was it! Not sure how it got there and how it happened but that fixed the problems I had. – bottleboot Oct 18 '12 at 11:17
  • 1
    Good point, I've extended the answer accordingly. – nohillside Oct 18 '12 at 13:35
0

You should add to your .bash_profile the following line instead of the one you reported in your question:

export PATH="$PATH:/Applications/MAMP/bin/php/php5.3.6/bin"
Maverik
  • 5,829
  • 6
  • 50
  • 55