Bash Process Substitution does not work as ‘root’ on OS X

bashosxrootshell

OS X 10.6.8, if I use Bash Process Substitution as 'root', it just doesn't work.

  • Is it supposed to be so?
  • Why?

Note: here's what I mean… "<(list)"

mysql -D robottinosino < <(echo 'select robot from tino_sino;') 

/* a contrived example, admittedly, as you could swap the echo and mysql using a simple pipe… I could not think of a better one off the top of my head */

EDIT:

  • I am logging on as root like so:

    "sudo su -"

(incidentally, is there a better way if I want to stay logged on?)

  • I am not on Bash so my question is really stupid and the comment below caught the problem instantly! 🙁

echo $0 yields "-sh" 🙁

I guess this question could just be deleted at this point or metamorphosed into:

"how to I properly log in as 'root' using bash?" (perhaps editing /private/etc/passwd? that does not seem to work. or… sudo bash -l?)

Best Answer

If you want to change the shell, run chsh -s /bin/bash

If you want to run the shell once while logged in as root just run bash or /bin/bash

chsh after changing roots shell:

# Changing user information for root.
# Use "passwd" to change the password.
##
# Open Directory: /Local/Default
##
Login: root
Uid [#]: 0
Gid [# or name]: 0
Generated uid: FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000
Home directory: /var/root
Shell: /bin/bash
Full Name: System Administrator
Office Location:
Office Phone:
Home Phone:
Related Question