Search code examples
bashrbenv

what does this strange little yellow arrow below the command prompt mean?


I am installing rbenv, following their documentation to

add ~/.rbenv/bin to your $PATH for access to the rbenv command-line utility. And this arrow shows up. What does it mean?

enter image description here


Solution

  • It's almost certainly your PS2 prompt, used for line continuation. For example, I have PS1 set to 'pax> ' and PS2 set to '...> ' and the following transcript shows that in action:

    pax> echo 'hello
    ...> there'
    hello
    there
    

    The reason the PS2 prompt is there is because you have an unterminated " character (though, technically, this is an unstarted quote but the shell isn't smart enough to realise that and the effect is the same).

    I suggest you try something like:

    echo 'export PATH=$HOME/.rbenv/bin:$PATH' >>~/.bash_profile
    

    You'll notice I'm using single quotes there as well since you probably want the literal strings $HOME and $PATH being placed in your profile rather than their current interpreted values.


    And, one other thing, there are certain classes of profiles that will "break" if you just blindly append stuff to the end.

    It's fine for profiles that are simple sequential beasts (ones that run cleanly from top to bottom) but, if you have something with a lot of control structures (like if statements), you should be investigating the best place to put it in the file.

    By that I mean a profile containing (the admittedly contrived):

    # Don't do rest of file in first two weeks of a month.
    if [[ $(date +%d) -le 14 ]]; then
        exit
    fi
    

    may incorrectly skip your changes if you just add them to the file end without analysis. In this case, the best place is probably immediately above that if statement.