Bash-Prozesssubstitution funktioniert unter OS X nicht als „Root“.

Bash-Prozesssubstitution funktioniert unter OS X nicht als „Root“.

Wenn ich unter OS X 10.6.8 die Bash-Prozessersetzung als „Root“ verwende, funktioniert es einfach nicht.

  • Soll das so sein?
  • Warum?

Hinweis: Folgendes meine ich … „<(Liste)“

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

/* zugegebenermaßen ein konstruiertes Beispiel, da man Echo und MySQL mit einer einfachen Pipe vertauschen könnte ... mir fällt spontan kein besseres ein */

BEARBEITEN:

  • Ich melde mich als Root wie folgt an:

    „sudo su -“

(gibt es übrigens einen besseren Weg, wenn ichbleibeneingeloggt sein?)

  • Ich binnichtauf Bash, also ist meine Frage wirklich dumm und der Kommentar unten hat das Problem sofort erkannt! :(

echo $0 ergibt "-sh" :(

Ich schätze, diese Frage könnte an dieser Stelle einfach gelöscht oder wie folgt umgewandelt werden:

„Wie melde ich mich mit Bash richtig als ‚root‘ an?“ (Vielleicht /private/etc/passwd bearbeiten? Das scheint nicht zu funktionieren. Oder … sudo bash -l?)

Antwort1

Wenn Sie die Shell ändern möchten, führen Sie auschsh -s /bin/bash

Wenn Sie die Shell einmalig ausführen möchten, während Sie als Root angemeldet sind, führen Sie einfach bashoder aus./bin/bash

chshnach dem Ändern der 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:

Antwort2

Wenn Sie Bash nicht verwenden, können Sie diese Bash-Funktion nicht verwenden.

Sie könnten sudo bashstattdessen mit der Verwendung von „root“ beginnen oder sudo bash -lsich mit einer Login-Shell als Root anmelden, um die Bash-Konfiguration zu lesen.

verwandte Informationen